summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--rsh.c12
-rw-r--r--rsh.h2
-rw-r--r--ssh-pull.c3
-rw-r--r--ssh-push.c4
4 files changed, 13 insertions, 8 deletions
diff --git a/rsh.c b/rsh.c
index 3eb9d91..8eea1d0 100644
--- a/rsh.c
+++ b/rsh.c
@@ -8,7 +8,7 @@
#define COMMAND_SIZE 4096
-int setup_connection(int *fd_in, int *fd_out, char *remote_prog,
+int setup_connection(int *fd_in, int *fd_out, const char *remote_prog,
char *url, int rmt_argc, char **rmt_argv)
{
char *host;
@@ -25,11 +25,13 @@ int setup_connection(int *fd_in, int *fd_out, char *remote_prog,
}
host = strstr(url, "//");
- if (!host) {
- return error("Bad URL: %s", url);
+ if (host) {
+ host += 2;
+ path = strchr(host, '/');
+ } else {
+ host = url;
+ path = strchr(host, ':');
}
- host += 2;
- path = strchr(host, '/');
if (!path) {
return error("Bad URL: %s", url);
}
diff --git a/rsh.h b/rsh.h
index 97e4f20..3b41942 100644
--- a/rsh.h
+++ b/rsh.h
@@ -1,7 +1,7 @@
#ifndef RSH_H
#define RSH_H
-int setup_connection(int *fd_in, int *fd_out, char *remote_prog,
+int setup_connection(int *fd_in, int *fd_out, const char *remote_prog,
char *url, int rmt_argc, char **rmt_argv);
#endif
diff --git a/ssh-pull.c b/ssh-pull.c
index c2cb59a..2748412 100644
--- a/ssh-pull.c
+++ b/ssh-pull.c
@@ -58,6 +58,7 @@ int main(int argc, char **argv)
char *commit_id;
char *url;
int arg = 1;
+ const char *prog = getenv("GIT_SSH_PUSH") ? : "git-ssh-push";
while (arg < argc && argv[arg][0] == '-') {
if (argv[arg][1] == 't') {
@@ -87,7 +88,7 @@ int main(int argc, char **argv)
commit_id = argv[arg];
url = argv[arg + 1];
- if (setup_connection(&fd_in, &fd_out, "git-ssh-push", url, arg, argv + 1))
+ if (setup_connection(&fd_in, &fd_out, prog, url, arg, argv + 1))
return 1;
if (get_version())
diff --git a/ssh-push.c b/ssh-push.c
index b67a95b..18c0b65 100644
--- a/ssh-push.c
+++ b/ssh-push.c
@@ -109,6 +109,8 @@ int main(int argc, char **argv)
char *commit_id;
char *url;
int fd_in, fd_out;
+ const char *prog = getenv("GIT_SSH_PULL") ? : "git-ssh-pull";
+
while (arg < argc && argv[arg][0] == '-') {
if (argv[arg][1] == 'w')
arg++;
@@ -120,7 +122,7 @@ int main(int argc, char **argv)
}
commit_id = argv[arg];
url = argv[arg + 1];
- if (setup_connection(&fd_in, &fd_out, "git-ssh-pull", url, arg, argv + 1))
+ if (setup_connection(&fd_in, &fd_out, prog, url, arg, argv + 1))
return 1;
service(fd_in, fd_out);