Some curl versions lack curl_easy_duphandle()
[gitweb.git] / connect.c
index 0e6f27ea0a07ef0ba9b339c447271b337a9e5a5b..247f02fb4cb3b3f96017c45427dfafd077692ebd 100644 (file)
--- a/connect.c
+++ b/connect.c
@@ -284,13 +284,17 @@ static enum protocol get_protocol(const char *name)
                return PROTO_SSH;
        if (!strcmp(name, "git"))
                return PROTO_GIT;
+       if (!strcmp(name, "git+ssh"))
+               return PROTO_SSH;
+       if (!strcmp(name, "ssh+git"))
+               return PROTO_SSH;
        die("I don't handle protocol '%s'", name);
 }
 
 #define STR_(s)        # s
 #define STR(s) STR_(s)
 
-#ifndef __CYGWIN__
+#ifndef NO_IPV6
 
 static int git_tcp_connect(int fd[2], const char *prog, char *host, char *path)
 {
@@ -348,7 +352,7 @@ static int git_tcp_connect(int fd[2], const char *prog, char *host, char *path)
        return 0;
 }
 
-#else /* __CYGWIN__ */
+#else /* NO_IPV6 */
 
 static int git_tcp_connect(int fd[2], const char *prog, char *host, char *path)
 {
@@ -397,7 +401,7 @@ static int git_tcp_connect(int fd[2], const char *prog, char *host, char *path)
 
                memset(&sa, 0, sizeof sa);
                sa.sin_family = he->h_addrtype;
-               sa.sin_port = nport;
+               sa.sin_port = htons(nport);
                memcpy(&sa.sin_addr, ap, he->h_length);
 
                if (connect(sockfd, (struct sockaddr *)&sa, sizeof sa) < 0) {
@@ -417,7 +421,7 @@ static int git_tcp_connect(int fd[2], const char *prog, char *host, char *path)
        return 0;
 }
 
-#endif /* __CYGWIN__ */
+#endif /* NO_IPV6 */
 
 /*
  * Yeah, yeah, fixme. Need to pass in the heads etc.