Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
G
git2
Overview
Overview
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
lvzhengyang
git2
Commits
21a3bbe4
Commit
21a3bbe4
authored
Aug 27, 2013
by
Vicent Martí
Browse files
Options
Browse Files
Download
Plain Diff
Merge pull request #1812 from ethomson/version_check
Windows XP updates
parents
ba7cc8d2
1ff3a094
Show whitespace changes
Inline
Side-by-side
Showing
5 changed files
with
38 additions
and
26 deletions
+38
-26
src/hash/hash_win32.c
+1
-19
src/transports/winhttp.c
+2
-2
src/win32/error.c
+1
-1
src/win32/version.h
+21
-4
tests-clar/core/posix.c
+13
-0
No files found.
src/hash/hash_win32.c
View file @
21a3bbe4
...
@@ -20,29 +20,11 @@ static struct git_hash_prov hash_prov = {0};
...
@@ -20,29 +20,11 @@ static struct git_hash_prov hash_prov = {0};
/* Initialize CNG, if available */
/* Initialize CNG, if available */
GIT_INLINE
(
int
)
hash_cng_prov_init
(
void
)
GIT_INLINE
(
int
)
hash_cng_prov_init
(
void
)
{
{
OSVERSIONINFOEX
version_test
=
{
0
};
DWORD
version_test_mask
;
DWORDLONG
version_condition_mask
=
0
;
char
dll_path
[
MAX_PATH
];
char
dll_path
[
MAX_PATH
];
DWORD
dll_path_len
,
size_len
;
DWORD
dll_path_len
,
size_len
;
return
-
1
;
/* Only use CNG on Windows 2008 / Vista SP1 or better (Windows 6.0 SP1) */
/* Only use CNG on Windows 2008 / Vista SP1 or better (Windows 6.0 SP1) */
version_test
.
dwOSVersionInfoSize
=
sizeof
(
OSVERSIONINFOEX
);
if
(
!
git_has_win32_version
(
6
,
0
,
1
))
version_test
.
dwMajorVersion
=
6
;
version_test
.
dwMinorVersion
=
0
;
version_test
.
wServicePackMajor
=
1
;
version_test
.
wServicePackMinor
=
0
;
version_test_mask
=
(
VER_MAJORVERSION
|
VER_MINORVERSION
|
VER_SERVICEPACKMAJOR
|
VER_SERVICEPACKMINOR
);
VER_SET_CONDITION
(
version_condition_mask
,
VER_MAJORVERSION
,
VER_GREATER_EQUAL
);
VER_SET_CONDITION
(
version_condition_mask
,
VER_MINORVERSION
,
VER_GREATER_EQUAL
);
VER_SET_CONDITION
(
version_condition_mask
,
VER_SERVICEPACKMAJOR
,
VER_GREATER_EQUAL
);
VER_SET_CONDITION
(
version_condition_mask
,
VER_SERVICEPACKMINOR
,
VER_GREATER_EQUAL
);
if
(
!
VerifyVersionInfo
(
&
version_test
,
version_test_mask
,
version_condition_mask
))
return
-
1
;
return
-
1
;
/* Load bcrypt.dll explicitly from the system directory */
/* Load bcrypt.dll explicitly from the system directory */
...
...
src/transports/winhttp.c
View file @
21a3bbe4
...
@@ -511,7 +511,7 @@ replay:
...
@@ -511,7 +511,7 @@ replay:
/* Check for Windows 7. This workaround is only necessary on
/* Check for Windows 7. This workaround is only necessary on
* Windows Vista and earlier. Windows 7 is version 6.1. */
* Windows Vista and earlier. Windows 7 is version 6.1. */
if
(
!
git_has_win32_version
(
6
,
1
))
{
if
(
!
git_has_win32_version
(
6
,
1
,
0
))
{
wchar_t
*
location
;
wchar_t
*
location
;
DWORD
location_length
;
DWORD
location_length
;
int
redirect_cmp
;
int
redirect_cmp
;
...
@@ -989,7 +989,7 @@ static int winhttp_receivepack(
...
@@ -989,7 +989,7 @@ static int winhttp_receivepack(
{
{
/* WinHTTP only supports Transfer-Encoding: chunked
/* WinHTTP only supports Transfer-Encoding: chunked
* on Windows Vista (NT 6.0) and higher. */
* on Windows Vista (NT 6.0) and higher. */
s
->
chunked
=
git_has_win32_version
(
6
,
0
);
s
->
chunked
=
git_has_win32_version
(
6
,
0
,
0
);
if
(
s
->
chunked
)
if
(
s
->
chunked
)
s
->
parent
.
write
=
winhttp_stream_write_chunked
;
s
->
parent
.
write
=
winhttp_stream_write_chunked
;
...
...
src/win32/error.c
View file @
21a3bbe4
...
@@ -47,7 +47,7 @@ char *git_win32_get_error_message(DWORD error_code)
...
@@ -47,7 +47,7 @@ char *git_win32_get_error_message(DWORD error_code)
(
LPWSTR
)
&
lpMsgBuf
,
0
,
NULL
))
{
(
LPWSTR
)
&
lpMsgBuf
,
0
,
NULL
))
{
/* Invalid code point check supported on Vista+ only */
/* Invalid code point check supported on Vista+ only */
if
(
git_has_win32_version
(
6
,
0
))
if
(
git_has_win32_version
(
6
,
0
,
0
))
dwFlags
=
WC_ERR_INVALID_CHARS
;
dwFlags
=
WC_ERR_INVALID_CHARS
;
else
else
dwFlags
=
0
;
dwFlags
=
0
;
...
...
src/win32/version.h
View file @
21a3bbe4
...
@@ -9,12 +9,29 @@
...
@@ -9,12 +9,29 @@
#include <windows.h>
#include <windows.h>
GIT_INLINE
(
int
)
git_has_win32_version
(
int
major
,
int
minor
)
GIT_INLINE
(
int
)
git_has_win32_version
(
int
major
,
int
minor
,
int
service_pack
)
{
{
WORD
wVersion
=
LOWORD
(
GetVersion
());
OSVERSIONINFOEX
version_test
=
{
0
};
DWORD
version_test_mask
;
DWORDLONG
version_condition_mask
=
0
;
return
LOBYTE
(
wVersion
)
>
major
||
version_test
.
dwOSVersionInfoSize
=
sizeof
(
OSVERSIONINFOEX
);
(
LOBYTE
(
wVersion
)
==
major
&&
HIBYTE
(
wVersion
)
>=
minor
);
version_test
.
dwMajorVersion
=
major
;
version_test
.
dwMinorVersion
=
minor
;
version_test
.
wServicePackMajor
=
service_pack
;
version_test
.
wServicePackMinor
=
0
;
version_test_mask
=
(
VER_MAJORVERSION
|
VER_MINORVERSION
|
VER_SERVICEPACKMAJOR
|
VER_SERVICEPACKMINOR
);
VER_SET_CONDITION
(
version_condition_mask
,
VER_MAJORVERSION
,
VER_GREATER_EQUAL
);
VER_SET_CONDITION
(
version_condition_mask
,
VER_MINORVERSION
,
VER_GREATER_EQUAL
);
VER_SET_CONDITION
(
version_condition_mask
,
VER_SERVICEPACKMAJOR
,
VER_GREATER_EQUAL
);
VER_SET_CONDITION
(
version_condition_mask
,
VER_SERVICEPACKMINOR
,
VER_GREATER_EQUAL
);
if
(
!
VerifyVersionInfo
(
&
version_test
,
version_test_mask
,
version_condition_mask
))
return
0
;
return
1
;
}
}
#endif
#endif
tests-clar/core/posix.c
View file @
21a3bbe4
...
@@ -24,6 +24,16 @@ void test_core_posix__initialize(void)
...
@@ -24,6 +24,16 @@ void test_core_posix__initialize(void)
#endif
#endif
}
}
static
bool
supports_ipv6
(
void
)
{
#ifdef GIT_WIN32
/* IPv6 is supported on Vista and newer */
return
git_has_win32_version
(
6
,
0
,
0
);
#else
return
1
;
#endif
}
void
test_core_posix__inet_pton
(
void
)
void
test_core_posix__inet_pton
(
void
)
{
{
struct
in_addr
addr
;
struct
in_addr
addr
;
...
@@ -65,10 +75,13 @@ void test_core_posix__inet_pton(void)
...
@@ -65,10 +75,13 @@ void test_core_posix__inet_pton(void)
}
}
/* Test some ipv6 addresses */
/* Test some ipv6 addresses */
if
(
supports_ipv6
())
{
for
(
i
=
0
;
i
<
6
;
i
++
)
{
for
(
i
=
0
;
i
<
6
;
i
++
)
{
cl_assert
(
p_inet_pton
(
AF_INET6
,
in6_addr_data
[
i
].
p
,
&
addr6
)
==
1
);
cl_assert
(
p_inet_pton
(
AF_INET6
,
in6_addr_data
[
i
].
p
,
&
addr6
)
==
1
);
cl_assert
(
memcmp
(
&
addr6
,
in6_addr_data
[
i
].
n
,
sizeof
(
struct
in6_addr
))
==
0
);
cl_assert
(
memcmp
(
&
addr6
,
in6_addr_data
[
i
].
n
,
sizeof
(
struct
in6_addr
))
==
0
);
}
}
}
/* Test some invalid strings */
/* Test some invalid strings */
cl_assert
(
p_inet_pton
(
AF_INET
,
""
,
&
addr
)
==
0
);
cl_assert
(
p_inet_pton
(
AF_INET
,
""
,
&
addr
)
==
0
);
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment