Skip to content

Commit

Permalink
Merge branch 'ml/connect-refactor'
Browse files Browse the repository at this point in the history
* ml/connect-refactor:
  connect.c: move duplicated code to a new function 'get_host_and_port'
  • Loading branch information
gitster committed Mar 2, 2010
2 parents 34c014d + 72a534d commit a0626bc
Showing 1 changed file with 29 additions and 54 deletions.
83 changes: 29 additions & 54 deletions connect.c
Expand Up @@ -152,6 +152,28 @@ static enum protocol get_protocol(const char *name)
#define STR_(s) # s
#define STR(s) STR_(s)

static void get_host_and_port(char **host, const char **port)
{
char *colon, *end;

if (*host[0] == '[') {
end = strchr(*host + 1, ']');
if (end) {
*end = 0;
end++;
(*host)++;
} else
end = *host;
} else
end = *host;
colon = strchr(end, ':');

if (colon) {
*colon = 0;
*port = colon + 1;
}
}

#ifndef NO_IPV6

static const char *ai_name(const struct addrinfo *ai)
Expand All @@ -170,30 +192,14 @@ static const char *ai_name(const struct addrinfo *ai)
static int git_tcp_connect_sock(char *host, int flags)
{
int sockfd = -1, saved_errno = 0;
char *colon, *end;
const char *port = STR(DEFAULT_GIT_PORT);
struct addrinfo hints, *ai0, *ai;
int gai;
int cnt = 0;

if (host[0] == '[') {
end = strchr(host + 1, ']');
if (end) {
*end = 0;
end++;
host++;
} else
end = host;
} else
end = host;
colon = strchr(end, ':');

if (colon) {
*colon = 0;
port = colon + 1;
if (!*port)
port = "<none>";
}
get_host_and_port(&host, &port);
if (!*port)
port = "<none>";

memset(&hints, 0, sizeof(hints));
hints.ai_socktype = SOCK_STREAM;
Expand Down Expand Up @@ -251,30 +257,15 @@ static int git_tcp_connect_sock(char *host, int flags)
static int git_tcp_connect_sock(char *host, int flags)
{
int sockfd = -1, saved_errno = 0;
char *colon, *end;
char *port = STR(DEFAULT_GIT_PORT), *ep;
const char *port = STR(DEFAULT_GIT_PORT);
char *ep;
struct hostent *he;
struct sockaddr_in sa;
char **ap;
unsigned int nport;
int cnt;

if (host[0] == '[') {
end = strchr(host + 1, ']');
if (end) {
*end = 0;
end++;
host++;
} else
end = host;
} else
end = host;
colon = strchr(end, ':');

if (colon) {
*colon = 0;
port = colon + 1;
}
get_host_and_port(&host, &port);

if (flags & CONNECT_VERBOSE)
fprintf(stderr, "Looking up %s ... ", host);
Expand Down Expand Up @@ -406,26 +397,10 @@ static int git_use_proxy(const char *host)
static void git_proxy_connect(int fd[2], char *host)
{
const char *port = STR(DEFAULT_GIT_PORT);
char *colon, *end;
const char *argv[4];
struct child_process proxy;

if (host[0] == '[') {
end = strchr(host + 1, ']');
if (end) {
*end = 0;
end++;
host++;
} else
end = host;
} else
end = host;
colon = strchr(end, ':');

if (colon) {
*colon = 0;
port = colon + 1;
}
get_host_and_port(&host, &port);

argv[0] = git_proxy_command;
argv[1] = host;
Expand Down

0 comments on commit a0626bc

Please sign in to comment.