Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
李少辉-开发者
git
提交
7ab9f8f8
G
git
项目概览
李少辉-开发者
/
git
与 Fork 源项目一致
从无法访问的项目Fork
通知
2
Star
1
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
G
git
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
体验新版 GitCode,发现更多精彩内容 >>
提交
7ab9f8f8
编写于
3月 02, 2008
作者:
J
Junio C Hamano
浏览文件
操作
浏览文件
下载
差异文件
Merge branch 'mh/maint-http-proxy-fix'
* mh/maint-http-proxy-fix: Set proxy override with http_init()
上级
d82b21b5
9fc6440d
变更
7
隐藏空白更改
内联
并排
Showing
7 changed file
with
22 addition
and
12 deletion
+22
-12
builtin-http-fetch.c
builtin-http-fetch.c
+1
-1
http-push.c
http-push.c
+1
-1
http-walker.c
http-walker.c
+2
-2
http.c
http.c
+9
-1
http.h
http.h
+2
-1
transport.c
transport.c
+4
-5
walker.h
walker.h
+3
-1
未找到文件。
builtin-http-fetch.c
浏览文件 @
7ab9f8f8
...
...
@@ -59,7 +59,7 @@ int cmd_http_fetch(int argc, const char **argv, const char *prefix)
url
=
rewritten_url
;
}
walker
=
get_http_walker
(
url
);
walker
=
get_http_walker
(
url
,
NULL
);
walker
->
get_tree
=
get_tree
;
walker
->
get_history
=
get_history
;
walker
->
get_all
=
get_all
;
...
...
http-push.c
浏览文件 @
7ab9f8f8
...
...
@@ -2237,7 +2237,7 @@ int main(int argc, char **argv)
memset
(
remote_dir_exists
,
-
1
,
256
);
http_init
();
http_init
(
NULL
);
no_pragma_header
=
curl_slist_append
(
no_pragma_header
,
"Pragma:"
);
...
...
http-walker.c
浏览文件 @
7ab9f8f8
...
...
@@ -902,13 +902,13 @@ static void cleanup(struct walker *walker)
curl_slist_free_all
(
data
->
no_pragma_header
);
}
struct
walker
*
get_http_walker
(
const
char
*
url
)
struct
walker
*
get_http_walker
(
const
char
*
url
,
struct
remote
*
remote
)
{
char
*
s
;
struct
walker_data
*
data
=
xmalloc
(
sizeof
(
struct
walker_data
));
struct
walker
*
walker
=
xmalloc
(
sizeof
(
struct
walker
));
http_init
();
http_init
(
remote
);
data
->
no_pragma_header
=
curl_slist_append
(
NULL
,
"Pragma:"
);
...
...
http.c
浏览文件 @
7ab9f8f8
...
...
@@ -218,13 +218,16 @@ static CURL* get_curl_handle(void)
return
result
;
}
void
http_init
(
void
)
void
http_init
(
struct
remote
*
remote
)
{
char
*
low_speed_limit
;
char
*
low_speed_time
;
curl_global_init
(
CURL_GLOBAL_ALL
);
if
(
remote
&&
remote
->
http_proxy
)
curl_http_proxy
=
xstrdup
(
remote
->
http_proxy
);
pragma_header
=
curl_slist_append
(
pragma_header
,
"Pragma: no-cache"
);
#ifdef USE_CURL_MULTI
...
...
@@ -314,6 +317,11 @@ void http_cleanup(void)
curl_slist_free_all
(
pragma_header
);
pragma_header
=
NULL
;
if
(
curl_http_proxy
)
{
free
(
curl_http_proxy
);
curl_http_proxy
=
NULL
;
}
}
struct
active_request_slot
*
get_active_slot
(
void
)
...
...
http.h
浏览文件 @
7ab9f8f8
...
...
@@ -7,6 +7,7 @@
#include <curl/easy.h>
#include "strbuf.h"
#include "remote.h"
/*
* We detect based on the cURL version if multi-transfer is
...
...
@@ -83,7 +84,7 @@ extern void add_fill_function(void *data, int (*fill)(void *));
extern
void
step_active_slots
(
void
);
#endif
extern
void
http_init
(
void
);
extern
void
http_init
(
struct
remote
*
remote
);
extern
void
http_cleanup
(
void
);
extern
int
data_received
;
...
...
transport.c
浏览文件 @
7ab9f8f8
...
...
@@ -442,7 +442,8 @@ static struct ref *get_refs_via_curl(struct transport *transport)
struct
ref
*
last_ref
=
NULL
;
if
(
!
transport
->
data
)
transport
->
data
=
get_http_walker
(
transport
->
url
);
transport
->
data
=
get_http_walker
(
transport
->
url
,
transport
->
remote
);
refs_url
=
xmalloc
(
strlen
(
transport
->
url
)
+
11
);
sprintf
(
refs_url
,
"%s/info/refs"
,
transport
->
url
);
...
...
@@ -453,9 +454,6 @@ static struct ref *get_refs_via_curl(struct transport *transport)
curl_easy_setopt
(
slot
->
curl
,
CURLOPT_WRITEFUNCTION
,
fwrite_buffer
);
curl_easy_setopt
(
slot
->
curl
,
CURLOPT_URL
,
refs_url
);
curl_easy_setopt
(
slot
->
curl
,
CURLOPT_HTTPHEADER
,
NULL
);
if
(
transport
->
remote
->
http_proxy
)
curl_easy_setopt
(
slot
->
curl
,
CURLOPT_PROXY
,
transport
->
remote
->
http_proxy
);
if
(
start_active_slot
(
slot
))
{
run_active_slot
(
slot
);
...
...
@@ -509,7 +507,8 @@ static int fetch_objs_via_curl(struct transport *transport,
int
nr_objs
,
struct
ref
**
to_fetch
)
{
if
(
!
transport
->
data
)
transport
->
data
=
get_http_walker
(
transport
->
url
);
transport
->
data
=
get_http_walker
(
transport
->
url
,
transport
->
remote
);
return
fetch_objs_via_walker
(
transport
,
nr_objs
,
to_fetch
);
}
...
...
walker.h
浏览文件 @
7ab9f8f8
#ifndef WALKER_H
#define WALKER_H
#include "remote.h"
struct
walker
{
void
*
data
;
int
(
*
fetch_ref
)(
struct
walker
*
,
char
*
ref
,
unsigned
char
*
sha1
);
...
...
@@ -32,6 +34,6 @@ int walker_fetch(struct walker *impl, int targets, char **target,
void
walker_free
(
struct
walker
*
walker
);
struct
walker
*
get_http_walker
(
const
char
*
url
);
struct
walker
*
get_http_walker
(
const
char
*
url
,
struct
remote
*
remote
);
#endif
/* WALKER_H */
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录