Changeset 101


Ignore:
Timestamp:
Aug 14, 2010, 7:50:26 PM (15 years ago)
Author:
dmik
Message:

jdk: Ported net.dll to OS/2.

Location:
trunk/openjdk/jdk
Files:
13 edited

Legend:

Unmodified
Added
Removed
  • trunk/openjdk/jdk/make/java/net/FILES_c.gmk

    r74 r101  
    4444endif
    4545
    46 ifeq ($(filter-out windows os2, $(PLATFORM)),)
     46ifeq ($(PLATFORM), windows)
    4747    FILES_c += TwoStacksPlainSocketImpl.c
    4848    FILES_c += DualStackPlainSocketImpl.c
     
    5050    FILES_c += DualStackPlainDatagramSocketImpl.c
    5151else
     52ifeq ($(PLATFORM), os2)
     53    FILES_c += TwoStacksPlainSocketImpl.c
     54    FILES_c += TwoStacksPlainDatagramSocketImpl.c
     55else
    5256    FILES_c += PlainSocketImpl.c
    5357    FILES_c += PlainDatagramSocketImpl.c
    5458endif
     59endif
    5560
  • trunk/openjdk/jdk/make/java/net/Makefile

    r74 r101  
    3737AUTO_FILES_JAVA_DIRS = java/net
    3838
    39 ifeq ($(filter-out windows os2, $(PLATFORM)),)
     39ifeq ($(PLATFORM), windows)
    4040    # Windows 9x module only needed on 32-bit build
    4141    ifeq ($(ARCH_DATA_MODEL), 32)
     
    4444    FILES_c += NTLMAuthSequence.c
    4545    FILES_c += NetworkInterface_winXP.c
     46endif
     47
     48ifeq ($(PLATFORM), os2)
     49    FILES_c += NTLMAuthSequence.c
    4650endif
    4751
     
    7276    sun/net/spi/DefaultProxySelector.java
    7377
    74 ifeq ($(filter-out windows os2, $(PLATFORM)),)
     78ifeq ($(PLATFORM), windows)
    7579    FILES_export += java/net/TwoStacksPlainSocketImpl.java
    7680    FILES_export += java/net/DualStackPlainSocketImpl.java
     
    7882    FILES_export += java/net/DualStackPlainDatagramSocketImpl.java
    7983else
     84ifeq ($(PLATFORM), os2)
     85    FILES_export += java/net/TwoStacksPlainSocketImpl.java
     86    FILES_export += java/net/TwoStacksPlainDatagramSocketImpl.java
     87else
    8088    FILES_export += java/net/PlainDatagramSocketImpl.java
     89endif
    8190endif
    8291
     
    93102include $(BUILDDIR)/common/Library.gmk
    94103
    95 ifeq ($(filter-out windows os2, $(PLATFORM)),)
     104ifeq ($(PLATFORM), windows)
    96105  OTHER_LDLIBS = ws2_32.lib $(JVMLIB)
    97106  # Will not compile at warning level 3 if warnings are fatal
    98107  COMPILER_WARNINGS_FATAL=false
    99108else
     109ifeq ($(PLATFORM), os2)
     110  OTHER_LDLIBS = -lws2_32.lib $(JVMLIB)
     111else
    100112  OTHER_LDLIBS = $(LIBSOCKET) -lnsl -ldl $(JVMLIB)
     113endif
    101114endif
    102115ifeq ($(PLATFORM), linux)
  • trunk/openjdk/jdk/src/share/native/java/net/net_util.c

    r2 r101  
    159159NET_SockaddrEqualsInetAddress(JNIEnv *env, struct sockaddr *him, jobject iaObj)
    160160{
     161#ifdef AF_INET6
    161162    jint family = (*env)->GetIntField(env, iaObj, ia_familyID) == IPv4?
    162163        AF_INET : AF_INET6;
    163164
    164 #ifdef AF_INET6
    165165    if (him->sa_family == AF_INET6) {
    166166#ifdef WIN32
     
    201201        }
    202202    } else
     203#else /* AF_INET6 */
     204    jint family = AF_INET;
    203205#endif /* AF_INET6 */
    204206        {
  • trunk/openjdk/jdk/src/windows/native/java/net/Inet4AddressImpl.c

    r2 r101  
    3131#include <malloc.h>
    3232#include <sys/types.h>
     33
     34#ifdef __EMX__
     35#include <unistd.h>
     36#include <wchar.h>
     37#include <string.h>
     38#endif
    3339
    3440#include "java_net_InetAddress.h"
  • trunk/openjdk/jdk/src/windows/native/java/net/Inet6AddressImpl.c

    r2 r101  
    3232#include <sys/types.h>
    3333
     34#ifdef __EMX__
     35#include <unistd.h>
     36#include <wchar.h>
     37#include <string.h>
     38#endif
     39
    3440#include "java_net_InetAddress.h"
    3541#include "java_net_Inet4AddressImpl.h"
     
    8692Java_java_net_Inet6AddressImpl_lookupAllHostAddr(JNIEnv *env, jobject this,
    8793                                                jstring host) {
     94#ifdef AF_INET6
    8895    const char *hostname;
    8996    jobject name;
     
    302309
    303310    return ret;
     311#else /* AF_INET6 */
     312    return 0;
     313#endif /* AF_INET6 */
    304314}
    305315
     
    314324    jstring ret = NULL;
    315325
     326#ifdef AF_INET6
    316327    char host[NI_MAXHOST+1];
    317328    jfieldID fid;
     
    365376        JNU_ThrowByName(env, JNU_JAVANETPKG "UnknownHostException", NULL);
    366377    }
     378#endif /* AF_INET6 */
    367379
    368380    return ret;
  • trunk/openjdk/jdk/src/windows/native/java/net/NetworkInterface.c

    r2 r101  
    3030#include <assert.h>
    3131
     32#ifdef __EMX__
     33#include <wchar.h>
     34#include <string.h>
     35#endif
     36
    3237#include "java_net_NetworkInterface.h"
    3338#include "jni_util.h"
     
    228233            free(tableP);
    229234
    230 #ifndef _WIN64
     235#if !defined(_WIN64) && !defined(__WIN32OS2__)
    231236        if (isW9x && ret == ERROR_NOT_SUPPORTED) {
    232237            /*
     
    527532        GetFriendlyIfIndex_fn == NULL) {
    528533
    529 #ifndef _WIN64
     534#if !defined(_WIN64) && !defined(__WIN32OS2__)
    530535        if (isW9x) {
    531536            /* Use Windows 9x registry approach which requires initialization */
     
    638643        jobject iaObj, ia2Obj;
    639644        jobject ibObj = NULL;
     645#ifdef AF_INET6
    640646        if (addrs->addr.him.sa_family == AF_INET) {
     647#endif /* AF_INET6 */
    641648            iaObj = (*env)->NewObject(env, ni_ia4cls, ni_ia4Ctor);
    642649            if (iaObj == NULL) {
     
    665672              (*env)->SetObjectArrayElement(env, bindsArr, bind_index++, ibObj);
    666673            }
     674#ifdef AF_INET6
    667675        } else /* AF_INET6 */ {
    668676            int scope;
     
    692700            }
    693701        }
     702#endif /* AF_INET6 */
    694703        (*env)->SetObjectArrayElement(env, addrArr, addr_index, iaObj);
    695704        addrs = addrs->next;
     
    728737    jobject netifObj = NULL;
    729738
     739#ifdef AF_INET6
    730740    if (os_supports_ipv6 && ipv6_available()) {
    731741        return Java_java_net_NetworkInterface_getByName0_XP (env, cls, name);
    732742    }
     743#endif /* AF_INET6 */
    733744
    734745    /* get the list of interfaces */
     
    774785    jobject netifObj = NULL;
    775786
     787#ifdef AF_INET6
    776788    if (os_supports_ipv6 && ipv6_available()) {
    777789        return Java_java_net_NetworkInterface_getByIndex_XP (env, cls, index);
    778790    }
     791#endif /* AF_INET6 */
    779792
    780793    /* get the list of interfaces */
     
    815828    jobject netifObj = NULL;
    816829
     830#ifdef AF_INET6
    817831    if (os_supports_ipv6 && ipv6_available()) {
    818832        return Java_java_net_NetworkInterface_getByInetAddress0_XP (env, cls, iaObj);
    819833    }
     834#endif /* AF_INET6 */
    820835
    821836    /* get the list of interfaces */
     
    884899    jint arr_index;
    885900
     901#ifdef AF_INET6
    886902    if (os_supports_ipv6 && ipv6_available()) {
    887903        return Java_java_net_NetworkInterface_getAll_XP (env, cls);
    888904    }
     905#endif /* AF_INET6 */
    889906
    890907    /*
     
    937954  jboolean ret = JNI_FALSE;
    938955
     956#ifdef AF_INET6
    939957  if (os_supports_ipv6 && ipv6_available()) {
    940958    return Java_java_net_NetworkInterface_isUp0_XP(env, cls, name, index);
    941   } else {
     959  } else
     960#endif /* AF_INET6 */
     961  {
    942962    MIB_IFROW *ifRowP;
    943963    ifRowP = getIF(index);
     
    959979  jboolean ret = JNI_FALSE;
    960980
     981#ifdef AF_INET6
    961982  if (os_supports_ipv6 && ipv6_available()) {
    962983    return Java_java_net_NetworkInterface_isP2P0_XP(env, cls, name, index);
    963   } else {
     984  } else
     985#endif /* AF_INET6 */
     986  {
    964987    ifRowP = getIF(index);
    965988    if (ifRowP != NULL) {
     
    9861009  jboolean ret = JNI_FALSE;
    9871010
     1011#ifdef AF_INET6
    9881012  if (os_supports_ipv6 && ipv6_available()) {
    9891013    return Java_java_net_NetworkInterface_isLoopback0_XP(env, cls, name, index);
    990   } else {
     1014  } else
     1015#endif /* AF_INET6 */
     1016  {
    9911017    ifRowP = getIF(index);
    9921018    if (ifRowP != NULL) {
     
    10091035  jboolean ret = JNI_TRUE;
    10101036
     1037#ifdef AF_INET6
    10111038  // Let's try to use the newer API (XP & 2003 only)
    10121039  if (GetAdaptersAddresses_fn != NULL) {
     
    10151042    return ret;
    10161043  }
     1044#endif /* AF_INET6 */
    10171045  ifRowP = getIF(index);
    10181046  if (ifRowP != NULL) {
     
    10341062  MIB_IFROW *ifRowP;
    10351063
     1064#ifdef AF_INET6
    10361065  if (os_supports_ipv6 && ipv6_available()) {
    10371066    return Java_java_net_NetworkInterface_getMacAddr0_XP(env, class, name, index);
    1038   } else {
     1067  } else
     1068#endif /* AF_INET6 */
     1069  {
    10391070    ifRowP = getIF(index);
    10401071    if (ifRowP != NULL) {
     
    10651096  MIB_IFROW *ifRowP;
    10661097
     1098#ifdef AF_INET6
    10671099  if (os_supports_ipv6 && ipv6_available()) {
    10681100    return Java_java_net_NetworkInterface_getMTU0_XP(env, class, name, index);
    1069   } else {
     1101  } else
     1102#endif /* AF_INET6 */
     1103  {
    10701104    ifRowP = getIF(index);
    10711105    if (ifRowP != NULL) {
  • trunk/openjdk/jdk/src/windows/native/java/net/NetworkInterface.h

    r2 r101  
    8787extern jfieldID ni_ibmaskID;        /* InterfaceAddress.maskLength */
    8888
     89
     90#ifndef __WIN32OS2__
     91
    8992/*
    9093 * Following includes come from iptypes.h
     
    410413#endif
    411414
    412 #endif
     415#endif /* !__WIN32OS2__ */
     416
     417#endif
  • trunk/openjdk/jdk/src/windows/native/java/net/SocketOutputStream.c

    r2 r101  
    3131#include <malloc.h>
    3232#include <sys/types.h>
     33
     34#ifdef __EMX__
     35#define min(a, b) ((a) < (b) ? (a) : (b))
     36#endif
    3337
    3438#include "java_net_SocketOutputStream.h"
  • trunk/openjdk/jdk/src/windows/native/java/net/TwoStacksPlainDatagramSocketImpl.c

    r2 r101  
    3333#include <sys/types.h>
    3434
     35#ifdef __EMX__
     36#include <string.h>
     37#endif
     38
    3539#ifndef IPTOS_TOS_MASK
    3640#define IPTOS_TOS_MASK 0x1e
     
    460464    }
    461465
     466#ifdef AF_INET6
    462467    if (ipv6_supported) {
    463468        struct ipv6bind v6bind;
     
    491496            return;
    492497        }
    493     } else {
     498    } else
     499#endif /* AF_INET6 */
     500    {
    494501        if (bind(fd, (struct sockaddr *)&lcladdr, lcladdrlen) == -1) {
    495502            if (WSAGetLastError() == WSAEACCES) {
     
    15061513    NET_SetSockOpt(fd, SOL_SOCKET, SO_BROADCAST, (char*)&t, sizeof(BOOL));
    15071514
     1515#ifdef AF_INET6
    15081516    if (ipv6_supported) {
    15091517        /* SIO_UDP_CONNRESET fixes a bug introduced in Windows 2000, which
     
    15251533        (*env)->SetIntField(env, fd1Obj, IO_fd_fdID, fd1);
    15261534        SetHandleInformation((HANDLE)(UINT_PTR)fd1, HANDLE_FLAG_INHERIT, FALSE);
    1527     } else {
     1535    } else
     1536#endif /* AF_INET6 */
     1537    {
    15281538        /* drop the second fd */
    15291539        (*env)->SetObjectField(env, this, pdsi_fd1ID, NULL);
     
    22922302    }
    22932303
     2304#ifdef AF_INET6
    22942305    if (fd1 >= 0) {
    22952306      if (NET_SetSockOpt(fd1, IPPROTO_IPV6, IPV6_MULTICAST_HOPS, (char *)&ittl,
     
    22982309      }
    22992310    }
     2311#endif /* AF_INET6 */
    23002312}
    23012313
     
    23462358      return (jint)ttl;
    23472359    }
     2360#ifdef AF_INET6
    23482361    if (fd1 >= 0) {
    23492362      if (NET_GetSockOpt(fd1, IPPROTO_IPV6, IPV6_MULTICAST_HOPS, (char*)&ttl, &len) < 0) {
     
    23532366      return (jint)ttl;
    23542367    }
     2368#endif /* AF_INET6 */
    23552369    return -1;
    23562370}
     
    24162430    family = name.him.sa_family;
    24172431
     2432#ifdef AF_INET6
    24182433    if (family == AF_INET) {
     2434#endif /* AF_INET6 */
    24192435        int address = name.him4.sin_addr.s_addr;
    24202436        if (!IN_MULTICAST(ntohl(address))) {
     
    24532469            }
    24542470        }
     2471#ifdef AF_INET6
    24552472    } else /* AF_INET6 */ {
    24562473        if (ipv6_supported) {
     
    24962513        }
    24972514    }
     2515#endif /* AF_INET6 */
    24982516
    24992517    return;
  • trunk/openjdk/jdk/src/windows/native/java/net/TwoStacksPlainSocketImpl.c

    r2 r101  
    152152        (*env)->SetIntField(env, fdObj, IO_fd_fdID, (int)fd);
    153153    }
     154#ifdef AF_INET6
    154155    if (ipv6_available()) {
    155156        fd1Obj = (*env)->GetObjectField(env, this, psi_fd1ID);
     
    171172            (*env)->SetIntField(env, fd1Obj, IO_fd_fdID, fd1);
    172173        }
    173     } else {
     174    } else
     175#endif /* AF_INET6 */
     176    {
    174177        (*env)->SetObjectField(env, this, psi_fd1ID, NULL);
    175178    }
     
    227230
    228231    family = him.him.sa_family;
     232#ifdef AF_INET6
    229233    if (family == AF_INET6) {
    230234        if (!ipv6_supported) {
     
    244248            fd = fd1; fdObj = fd1Obj;
    245249        }
    246     } else {
     250    } else
     251#endif /* AF_INET6 */
     252    {
    247253        if (fd1 != -1) {
    248254            (*env)->SetIntField(env, fd1Obj, IO_fd_fdID, -1);
     
    439445    }
    440446
     447#ifdef AF_INET6
    441448    if (ipv6_supported) {
    442449        struct ipv6bind v6bind;
     
    468475            }
    469476        }
    470     } else {
     477    } else
     478#endif /* AF_INET6 */
     479    {
    471480        rv = NET_Bind(fd, (struct sockaddr *)&him, len);
    472481    }
     
    541550    }
    542551
     552#ifdef AF_INET6
    543553    if (addr.him.sa_family == AF_INET || IN6ADDR_ISANY(&addr.him6)) {
     554#endif /* AF_INET6 */
    544555        /* listen on v4 */
    545556        if (listen(fd, count) == -1) {
    546557            NET_ThrowCurrent(env, "listen failed");
    547558        }
     559#ifdef AF_INET6
    548560    } else {
    549561        NET_SocketClose (fd);
     
    562574        }
    563575    }
     576#endif /* AF_INET6 */
    564577}
    565578
     
    697710    (*env)->SetIntField(env, socketFdObj, IO_fd_fdID, fd);
    698711
     712#ifdef AF_INET6
    699713    if (him.him.sa_family == AF_INET) {
     714#endif /* AF_INET6 */
    700715        if (inet4Cls == NULL) {
    701716            jclass c = (*env)->FindClass(env, "java/net/Inet4Address");
     
    727742        (*env)->SetIntField(env, socketAddressObj, ia_familyID, IPv4);
    728743        (*env)->SetObjectField(env, socket, psi_addressID, socketAddressObj);
     744#ifdef AF_INET6
    729745    } else {
    730746        jbyteArray addr;
     
    756772        (*env)->SetIntField(env, socketAddressObj, ia6_scopeidID, him.him6.sin6_scope_id);
    757773    }
     774#endif /* AF_INET6 */
    758775    /* fields common to AF_INET and AF_INET6 */
    759776
     
    10301047     */
    10311048    if (opt == java_net_SocketOptions_SO_BINDADDR) {
    1032         SOCKET_ADDRESS him;
     1049        SOCKETADDRESS him;
    10331050        int len;
    10341051        int port;
     
    10391056        len = sizeof(struct sockaddr_in);
    10401057
     1058#ifdef AF_INET6
    10411059        if (fd == -1) {
    10421060            /* must be an IPV6 only socket. Case where both sockets are != -1
     
    10461064            len = sizeof(struct SOCKADDR_IN6);
    10471065        }
     1066#endif /* AF_INET6 */
    10481067
    10491068        if (getsockname(fd, (struct sockaddr *)&him, &len) < 0) {
  • trunk/openjdk/jdk/src/windows/native/java/net/net_util_md.c

    r2 r101  
    235235jint  IPv6_supported()
    236236{
     237#ifdef AF_INET6
    237238    HMODULE lib;
    238239    int fd = socket(AF_INET6, SOCK_STREAM, 0) ;
     
    260261
    261262    return JNI_TRUE;
     263#else /* AF_INET6 */
     264    return JNI_FALSE;
     265#endif /* AF_INET6 */
    262266}
    263267
     
    606610 * and returns SOCKET_ERROR. Used in NET_BindV6 only.
    607611 */
     612
     613#ifdef AF_INET6
    608614
    609615#define CLOSE_SOCKETS_AND_RETURN {      \
     
    628634}
    629635
     636#else /* AF_INET6 */
     637
     638#define CLOSE_SOCKETS_AND_RETURN {      \
     639    if (fd != -1) {                     \
     640        closesocket (fd);               \
     641        fd = -1;                        \
     642    }                                   \
     643    if (ofd != -1) {                    \
     644        closesocket (ofd);              \
     645        ofd = -1;                       \
     646    }                                   \
     647    if (close_fd != -1) {               \
     648        closesocket (close_fd);         \
     649        close_fd = -1;                  \
     650    }                                   \
     651    if (close_ofd != -1) {              \
     652        closesocket (close_ofd);        \
     653        close_ofd = -1;                 \
     654    }                                   \
     655    b->ipv4_fd = -1;                    \
     656    return SOCKET_ERROR;                \
     657}
     658
     659#endif /* AF_INET6 */
     660
    630661/*
    631662 * if ipv6 is available, call NET_BindV6 to bind to the required address/port.
     
    671702            CLOSE_SOCKETS_AND_RETURN;
    672703        }
     704#ifdef AF_INET6
    673705        closesocket (b->ipv6_fd);
    674706        b->ipv6_fd = -1;
     707#endif /* AF_INET6 */
    675708        return 0;
    676709    }
     710#ifdef AF_INET6
    677711    if (family == AF_INET6 && (!IN6_IS_ADDR_ANY(&b->addr->him6.sin6_addr))) {
    678712        /* bind to v6 only */
     
    789823    }
    790824    return 0;
    791 }
     825#else /* AF_INET6 */
     826    CLOSE_SOCKETS_AND_RETURN;
     827#endif /* AF_INET6 */
     828}
     829
     830#ifdef AF_INET6
    792831
    793832/*
     
    822861}
    823862
     863#endif /* AF_INET6 */
     864
    824865/* If address types is IPv6, then IPv6 must be available. Otherwise
    825866 * no address can be generated. In the case of an IPv4 Inetaddress this
     
    833874    jint family, iafam;
    834875    iafam = (*env)->GetIntField(env, iaObj, ia_familyID);
     876#ifdef AF_INET6
    835877    family = (iafam == IPv4)? AF_INET : AF_INET6;
    836878    if (ipv6_available() && !(family == AF_INET && v4MappedAddress == JNI_FALSE)) {
     
    874916        him6->sin6_scope_id = scopeid != 0 ? scopeid : cached_scope_id;
    875917        *len = sizeof(struct SOCKADDR_IN6) ;
    876     } else {
     918    } else
     919#else /* AF_INET6 */
     920    family = AF_INET;
     921#endif /* AF_INET6 */
     922    {
    877923        struct sockaddr_in *him4 = (struct sockaddr_in*)him;
    878924        jint address;
     
    893939jint
    894940NET_GetPortFromSockaddr(struct sockaddr *him) {
     941#ifdef AF_INET6
    895942    if (him->sa_family == AF_INET6) {
    896943        return ntohs(((struct sockaddr_in6*)him)->sin6_port);
    897     } else {
     944    } else
     945#endif /* AF_INET6 */
     946    {
    898947        return ntohs(((struct sockaddr_in*)him)->sin_port);
    899948    }
  • trunk/openjdk/jdk/src/windows/native/java/net/net_util_md.h

    r2 r101  
    250250    struct sockaddr     him;
    251251    struct sockaddr_in  him4;
     252#ifdef AF_INET6
    252253    struct SOCKADDR_IN6 him6;
     254#endif /* AF_INET6 */
    253255} SOCKETADDRESS;
    254256
     
    260262    SOCKETADDRESS       *addr;
    261263    SOCKET               ipv4_fd;
     264#ifdef AF_INET6
    262265    SOCKET               ipv6_fd;
     266#endif /* AF_INET6 */
    263267};
     268
     269#ifdef AF_INET6
    264270
    265271#define SOCKETADDRESS_LEN(X)    \
     
    291297)
    292298
     299#else /* AF_INET6 */
     300
     301#define SOCKETADDRESS_LEN(X) sizeof(struct sockaddr_in)
     302
     303#define SOCKETADDRESS_COPY(DST,SRC) {                       \
     304    memcpy ((DST), (SRC), sizeof (struct sockaddr_in));     \
     305}
     306
     307#define SET_PORT(X,Y) {                     \
     308    (X)->him4.sin_port = (Y);               \
     309}
     310
     311#define GET_PORT(X) ((X)->him4.sin_port)
     312
     313#define IS_LOOPBACK_ADDRESS(x) ( \
     314    (ntohl((x)->him4.sin_addr.s_addr)==INADDR_LOOPBACK) \
     315)
     316
     317#endif /* AF_INET6 */
     318
    293319JNIEXPORT int JNICALL NET_SocketClose(int fd);
    294320
     
    315341
    316342extern jint NET_Wait(JNIEnv *env, jint fd, jint flags, jint timeout);
     343extern int NET_Socket (int domain, int type, int protocol);
     344extern void NET_ThrowByNameWithLastError(JNIEnv *env, const char *name,
     345                                         const char *defaultDetail);
    317346
    318347/* XP versions of the native routines */
  • trunk/openjdk/jdk/src/windows/native/sun/net/www/protocol/http/NTLMAuthSequence.c

    r2 r101  
    3939#define SECURITY_WIN32
    4040#include "sspi.h"
     41#ifndef __WIN32OS2__
    4142#include "issperr.h"
     43#endif
    4244
    4345
Note: See TracChangeset for help on using the changeset viewer.