Re: [PATCH] git-config: read remote config files over HTTP

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Sven Verdoolaege <skimo@xxxxxxxx> writes:

> diff --git a/Makefile b/Makefile
> index 0185386..b782111 100644
> --- a/Makefile
> +++ b/Makefile

Very nicely done. 

> diff --git a/config.c b/config.c
> index 0da74e0..36e3b97 100644
> --- a/config.c
> +++ b/config.c
> @@ -7,6 +7,7 @@
>   */
>  #include "cache.h"
>  #include "pkt-line.h"
> +#include "http_config.h"
>  
>  #define MAXNAME (256)
>  
> @@ -395,6 +396,16 @@ int git_config_from_file(config_fn_t fn, const char *filename)
>  	return ret;
>  }
>  
> +static int config_from_http(config_fn_t fn, char *dest)
> +{
> +	static char *config_temp = "config.temp";
> +	if (git_http_fetch_config(dest, config_temp))
> +		return 1;
> +	git_config_from_file(fn, config_temp);
> +	unlink(config_temp);
> +	return 0;
> +}

Not mkstemp()?

> @@ -403,6 +414,9 @@ int git_config_from_remote(config_fn_t fn, char *dest)
>  	static char var[MAXNAME];
>  	static char value[1024];
>  
> +	if (!prefixcmp(dest, "http://";))
> +		return config_from_http(fn, dest);
> +

Shouldn't this also work for other protocols we handle via curl?

> diff --git a/http.c b/http.c
> index ae27e0c..3e1ccce 100644
> --- a/http.c
> +++ b/http.c
> @@ -25,6 +25,10 @@ long curl_low_speed_limit = -1;
>  long curl_low_speed_time = -1;
>  int curl_ftp_no_epsv = 0;
>  
> +#ifdef USE_CURL_MULTI
> +void (*fill_active_slots)(void) = NULL;
> +#endif
> +

I wonder if we could lose USE_CURL_MULTI around this one,...

>  struct curl_slist *pragma_header;
>  
>  struct active_request_slot *active_queue_head = NULL;
> @@ -394,7 +398,8 @@ void step_active_slots(void)
>  	} while (curlm_result == CURLM_CALL_MULTI_PERFORM);
>  	if (num_transfers < active_requests) {
>  		process_curl_messages();
> -		fill_active_slots();
> +		if (fill_active_slots)
> +			fill_active_slots();
>  	}
>  }
>  #endif
> @@ -459,7 +464,8 @@ void release_active_slot(struct active_request_slot *slot)
>  		slot->curl = NULL;
>  	}
>  #ifdef USE_CURL_MULTI
> -	fill_active_slots();
> +	if (fill_active_slots)
> +		fill_active_slots();
>  #endif
>  }

... and especially this one.

The fill_active_slots variable may happen to stay at NULL under
!USE_CURL_MULTI, because the only code that sets the variable
would be in #ifdef USE_CURL_MULTI.

-
To unsubscribe from this list: send the line "unsubscribe git" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html

[Index of Archives]     [Linux Kernel Development]     [Gcc Help]     [IETF Annouce]     [DCCP]     [Netdev]     [Networking]     [Security]     [V4L]     [Bugtraq]     [Yosemite]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Linux SCSI]     [Fedora Users]