Ignore:
Timestamp:
Jan 11, 2009, 5:02:04 PM (13 years ago)
Author:
charles
Message:

(trunk libT) win32 portability patch from Alexey

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/libtransmission/net.c

    r7652 r7663  
    5959
    6060
     61#ifdef WIN32
     62static const char *
     63inet_ntop(int af, const void *src, char *dst, socklen_t cnt)
     64{
     65    if (af == AF_INET)
     66    {
     67        struct sockaddr_in in;
     68        memset(&in, 0, sizeof(in));
     69        in.sin_family = AF_INET;
     70        memcpy(&in.sin_addr, src, sizeof(struct in_addr));
     71        getnameinfo((struct sockaddr *)&in, sizeof(struct
     72            sockaddr_in), dst, cnt, NULL, 0, NI_NUMERICHOST);
     73        return dst;
     74    }
     75    else if (af == AF_INET6)
     76    {
     77        struct sockaddr_in6 in;
     78        memset(&in, 0, sizeof(in));
     79        in.sin6_family = AF_INET6;
     80        memcpy(&in.sin6_addr, src, sizeof(struct in_addr6));
     81        getnameinfo((struct sockaddr *)&in, sizeof(struct
     82            sockaddr_in6), dst, cnt, NULL, 0, NI_NUMERICHOST);
     83        return dst;
     84    }
     85    return NULL;
     86}
     87
     88static int
     89inet_pton(int af, const char *src, void *dst)
     90{
     91    struct addrinfo hints;
     92    struct addrinfo *res;
     93    struct addrinfo *ressave;
     94
     95    memset(&hints, 0, sizeof(struct addrinfo));
     96    hints.ai_family = af;
     97
     98    if (getaddrinfo(src, NULL, &hints, &res) != 0)
     99        return -1;
     100
     101    ressave = res;
     102
     103    while (res)
     104    {
     105        memcpy(dst, res->ai_addr, res->ai_addrlen);
     106        res = res->ai_next;
     107    }
     108
     109    freeaddrinfo(ressave);
     110    return 0;
     111}
     112
     113#endif
     114
     115
    61116void
    62117tr_netInit( void )
Note: See TracChangeset for help on using the changeset viewer.