remote-fd/ext: finishing touches after code review
authorIlari Liusvaara <ilari.liusvaara@elisanet.fi>
Wed, 17 Nov 2010 17:15:34 +0000 (09:15 -0800)
committerJunio C Hamano <gitster@pobox.com>
Fri, 19 Nov 2010 19:04:20 +0000 (11:04 -0800)
When compiling with pthread support, transport-helper.c needs to include
necessary header files.  Also fix a few error messages in remote-ext and
remote-fd programs, and a potential buffer underrun in remote-fd.

In the documentation, clarify how %G and %V are used; the old description
looked as if they take repository/vhost parameters, which was wrong.

Also fix AsciiDoc markup for the page title of remote-fd/remote-ext manpages,
and tweak the way how section headers are shown.

Signed-off-by: Ilari Liusvaara <ilari.liusvaara@elisanet.fi>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Documentation/git-remote-ext.txt
Documentation/git-remote-fd.txt
builtin/remote-ext.c
builtin/remote-fd.c
transport-helper.c

index 8fb260b54b072bfd79ebf037967173994f0f2c5f..f4fbf672094ed11acb5ca551b5cc411a86f3f1ba 100644 (file)
@@ -39,20 +39,20 @@ The following sequences have a special meaning:
        git-upload-pack, or git-upload-archive) of the service
        git wants to invoke.
 
-'%G<repository>' (as argument)::
+'%G' (must be first characters in argument)::
        This argument will not be passed to 'program'. Instead, it
        will cause helper to start by sending git:// service request to
        remote side with service field set to approiate value and
-       repository field set to <repository>. Default is not to send
+       repository field set to rest of the argument. Default is not to send
        such request.
 +
 This is useful if remote side is git:// server accessed over
 some tunnel.
 
-'%V<host>' (as argument)::
+'%V' (must be first characters in argument)::
        This argument will not be passed to 'program'. Instead it sets
-       the vhost field in git:// service request. Default is not to
-       send vhost in such request (if sent).
+       the vhost field in git:// service request (to rest of the argument).
+       Default is not to send vhost in such request (if sent).
 
 ENVIRONMENT VARIABLES:
 ----------------------
index 1c1a1795c71f5da78d519ae42e00293b31e24ac1..abc49441be7a86e25a2b09d98f7de2ddcf0b0bb2 100644 (file)
@@ -1,5 +1,5 @@
 git-remote-fd(1)
-=================
+================
 
 NAME
 ----
@@ -28,13 +28,13 @@ It is assumed that any handshaking procedures have already been completed
 information to user in the URL in case that URL is displayed in some
 context.
 
-ENVIRONMENT VARIABLES:
-----------------------
+ENVIRONMENT VARIABLES
+---------------------
 GIT_TRANSLOOP_DEBUG::
        If set, prints debugging information about various reads/writes.
 
-EXAMPLES:
----------
+EXAMPLES
+--------
 git fetch fd::17 master::
        Fetch master, using file descriptor #17 to communicate with
        git-upload-pack.
index 1d3f1cf3cc4854b4c136c5db034baabf1889e3ce..1f773171cbdde76cc105e37928cc5f2ecb2ed93f 100644 (file)
@@ -142,7 +142,7 @@ static const char **parse_argv(const char *arg, const char *service)
        for (i = 0; i < arguments; i++)
                ret[i] = temparray[i];
        ret[arguments] = NULL;
-       return (const char **)ret;
+       return ret;
 }
 
 static void send_git_request(int stdin_fd, const char *serv, const char *repo,
@@ -239,10 +239,8 @@ static int command_loop(const char *child)
 
 int cmd_remote_ext(int argc, const char **argv, const char *prefix)
 {
-       if (argc < 3) {
-               fprintf(stderr, "Error: URL missing");
-               exit(1);
-       }
+       if (argc != 3)
+               die("Expected two arguments");
 
        return command_loop(argv[2]);
 }
index 7517f2476cb04eea5b5568f8f562a6cc1167d221..1f2467bdb756435764f9156ffefeeb510dc872d8 100644 (file)
@@ -31,7 +31,7 @@ static void command_loop(int input_fd, int output_fd)
                }
                /* Strip end of line characters. */
                i = strlen(buffer);
-               while (isspace(buffer[i - 1]))
+               while (i > 0 && isspace(buffer[i - 1]))
                        buffer[--i] = 0;
 
                if (!strcmp(buffer, "capabilities")) {
@@ -56,8 +56,8 @@ int cmd_remote_fd(int argc, const char **argv, const char *prefix)
        int output_fd = -1;
        char *end;
 
-       if (argc < 3)
-               die("URL missing");
+       if (argc != 3)
+               die("Expected two arguments");
 
        input_fd = (int)strtoul(argv[2], &end, 10);
 
index 0c094d66c1e39423b9c0765c7690113b685c6cdc..3a50856318798c14824bb628d7d463cd61b77213 100644 (file)
@@ -9,6 +9,11 @@
 #include "remote.h"
 #include "string-list.h"
 
+#ifndef NO_PTHREADS
+#include <pthread.h>
+#include "thread-utils.h"
+#endif
+
 static int debug;
 
 struct helper_data