Commit 3d29bda9 authored by Daniel Stenberg's avatar Daniel Stenberg
Browse files

- Bart Whiteley provided a patch that made libcurl work properly when an app

  uses the CURLOPT_OPENSOCKETFUNCTION callback to create a unix domain socket
  to a http server.
parent 459c6640
Loading
Loading
Loading
Loading
+5 −0
Original line number Diff line number Diff line
@@ -7,6 +7,11 @@
                                  Changelog


Daniel Stenberg (1 May 2008)
- Bart Whiteley provided a patch that made libcurl work properly when an app
  uses the CURLOPT_OPENSOCKETFUNCTION callback to create a unix domain socket
  to a http server.

Daniel Stenberg (29 Apr 2008)
- To make it easier for applications that want lots of magic stuff done on
  redirections and thus cannot use CURLOPT_FOLLOWLOCATION easily, we now
+2 −1
Original line number Diff line number Diff line
@@ -26,6 +26,7 @@ This release includes the following bugfixes:
 o the typechecker can be bypassed by defining CURL_DISABLE_TYPECHECK
 o a pointer mixup could make the FTP code send bad user+password under rare
   circumstances (found when using curlftpfs)
 o the CURLOPT_OPENSOCKETFUNCTION can now be used to create a unix domain socket

This release includes the following known bugs:

@@ -46,6 +47,6 @@ advice from friends like these:

 Michal Marek, Daniel Fandrich, Scott Barrett, Alexey Simak, Daniel Black,
 Rafa Muyo, Andre Guibert de Bruet, Brock Noland, Sandor Feldi, Stefan Krause,
 David Shaw, Norbert Frese
 David Shaw, Norbert Frese, Bart Whiteley

        Thanks! (and sorry if I forgot to mention someone)
+4 −0
Original line number Diff line number Diff line
@@ -1861,6 +1861,7 @@ AC_CHECK_HEADERS(
        arpa/inet.h \
        net/if.h \
        netinet/in.h \
        sys/un.h \
        netinet/tcp.h \
        netdb.h \
        sys/sockio.h \
@@ -1907,6 +1908,9 @@ dnl default includes
#ifdef HAVE_NETINET_IN_H
#include <netinet/in.h>
#endif
#ifdef HAVE_SYS_UN_H
#include <sys/un.h>
#endif
]
)

+19 −5
Original line number Diff line number Diff line
@@ -34,6 +34,9 @@
#ifdef HAVE_NETINET_IN_H
#include <netinet/in.h> /* <netinet/tcp.h> may need it */
#endif
#ifdef HAVE_SYS_UN_H
#include <sys/un.h> /* for sockaddr_un */
#endif
#ifdef HAVE_NETINET_TCP_H
#include <netinet/tcp.h> /* for TCP_NODELAY */
#endif
@@ -766,13 +769,24 @@ singleipconnect(struct connectdata *conn,

  /* FIXME: do we have Curl_printable_address-like with struct sockaddr* as
     argument? */
  iptoprint = &((const struct sockaddr_in*)(&addr->addr))->sin_addr;
#if defined(HAVE_SYS_UN_H) && defined(AF_UNIX)
  if(addr->family==AF_UNIX)
    infof(data, "  Trying %s... ",
          ((const struct sockaddr_un*)(&addr->addr))->sun_path);
  else
#endif
  {
#ifdef ENABLE_IPV6
    if(addr->family==AF_INET6)
      iptoprint= &((const struct sockaddr_in6*)(&addr->addr))->sin6_addr;
    else
#endif
  Curl_inet_ntop(addr->family, iptoprint, addr_buf, sizeof(addr_buf));
      iptoprint = &((const struct sockaddr_in*)(&addr->addr))->sin_addr;

    if(Curl_inet_ntop(addr->family, iptoprint, addr_buf,
                      sizeof(addr_buf)) != NULL)
      infof(data, "  Trying %s... ", addr_buf);
  }

  if(data->set.tcp_nodelay)
    tcpnodelay(conn, sockfd);