Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
W
wine-cw
Project
Project
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
Registry
Registry
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
wine
wine-cw
Commits
72575a06
Commit
72575a06
authored
Dec 07, 2006
by
Rob Shearman
Committed by
Alexandre Julliard
Dec 07, 2006
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
wininet: Make a function for resolving the server name for an HTTP request
and sending the appropriate callbacks and use it to remove some duplicated code.
parent
4319ec6b
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
27 additions
and
36 deletions
+27
-36
http.c
dlls/wininet/http.c
+27
-36
No files found.
dlls/wininet/http.c
View file @
72575a06
...
...
@@ -964,6 +964,31 @@ static BOOL HTTP_DealWithProxy( LPWININETAPPINFOW hIC,
return
TRUE
;
}
static
BOOL
HTTP_ResolveName
(
LPWININETHTTPREQW
lpwhr
)
{
char
szaddr
[
32
];
LPWININETHTTPSESSIONW
lpwhs
=
lpwhr
->
lpHttpSession
;
INTERNET_SendCallback
(
&
lpwhr
->
hdr
,
lpwhr
->
hdr
.
dwContext
,
INTERNET_STATUS_RESOLVING_NAME
,
lpwhs
->
lpszServerName
,
strlenW
(
lpwhs
->
lpszServerName
)
+
1
);
if
(
!
GetAddress
(
lpwhs
->
lpszServerName
,
lpwhs
->
nServerPort
,
&
lpwhs
->
socketAddress
))
{
INTERNET_SetLastError
(
ERROR_INTERNET_NAME_NOT_RESOLVED
);
return
FALSE
;
}
inet_ntop
(
lpwhs
->
socketAddress
.
sin_family
,
&
lpwhs
->
socketAddress
.
sin_addr
,
szaddr
,
sizeof
(
szaddr
));
INTERNET_SendCallback
(
&
lpwhr
->
hdr
,
lpwhr
->
hdr
.
dwContext
,
INTERNET_STATUS_NAME_RESOLVED
,
szaddr
,
strlen
(
szaddr
)
+
1
);
return
TRUE
;
}
/***********************************************************************
* HTTP_HttpOpenRequestW (internal)
*
...
...
@@ -988,7 +1013,6 @@ HINTERNET WINAPI HTTP_HttpOpenRequestW(LPWININETHTTPSESSIONW lpwhs,
static
const
WCHAR
szUrlForm
[]
=
{
'h'
,
't'
,
't'
,
'p'
,
':'
,
'/'
,
'/'
,
'%'
,
's'
,
0
};
DWORD
len
;
LPHTTPHEADERW
Host
;
char
szaddr
[
32
];
TRACE
(
"-->
\n
"
);
...
...
@@ -1135,29 +1159,12 @@ HINTERNET WINAPI HTTP_HttpOpenRequestW(LPWININETHTTPSESSIONW lpwhs,
* A STATUS_REQUEST_COMPLETE is NOT sent here as per my tests on windows
*/
/*
* According to my tests. The name is not resolved until a request is Opened
*/
INTERNET_SendCallback
(
&
lpwhr
->
hdr
,
dwContext
,
INTERNET_STATUS_RESOLVING_NAME
,
lpwhs
->
lpszServerName
,
strlenW
(
lpwhs
->
lpszServerName
)
+
1
);
if
(
!
GetAddress
(
lpwhs
->
lpszServerName
,
lpwhs
->
nServerPort
,
&
lpwhs
->
socketAddress
))
if
(
!
HTTP_ResolveName
(
lpwhr
))
{
INTERNET_SetLastError
(
ERROR_INTERNET_NAME_NOT_RESOLVED
);
InternetCloseHandle
(
handle
);
handle
=
NULL
;
goto
lend
;
}
inet_ntop
(
lpwhs
->
socketAddress
.
sin_family
,
&
lpwhs
->
socketAddress
.
sin_addr
,
szaddr
,
sizeof
(
szaddr
));
INTERNET_SendCallback
(
&
lpwhr
->
hdr
,
lpwhr
->
hdr
.
dwContext
,
INTERNET_STATUS_NAME_RESOLVED
,
szaddr
,
strlen
(
szaddr
)
+
1
);
lend:
if
(
lpwhr
)
WININET_Release
(
&
lpwhr
->
hdr
);
...
...
@@ -1933,7 +1940,6 @@ static BOOL HTTP_HandleRedirect(LPWININETHTTPREQW lpwhr, LPCWSTR lpszUrl)
LPWININETHTTPSESSIONW
lpwhs
=
lpwhr
->
lpHttpSession
;
LPWININETAPPINFOW
hIC
=
lpwhs
->
lpAppInfo
;
WCHAR
path
[
2048
];
char
szaddr
[
32
];
if
(
lpszUrl
[
0
]
==
'/'
)
{
...
...
@@ -2090,23 +2096,8 @@ static BOOL HTTP_HandleRedirect(LPWININETHTTPREQW lpwhr, LPCWSTR lpszUrl)
lpwhs
->
lpszUserName
=
WININET_strdupW
(
userName
);
lpwhs
->
nServerPort
=
urlComponents
.
nPort
;
INTERNET_SendCallback
(
&
lpwhr
->
hdr
,
lpwhr
->
hdr
.
dwContext
,
INTERNET_STATUS_RESOLVING_NAME
,
lpwhs
->
lpszServerName
,
strlenW
(
lpwhs
->
lpszServerName
)
+
1
);
if
(
!
GetAddress
(
lpwhs
->
lpszServerName
,
lpwhs
->
nServerPort
,
&
lpwhs
->
socketAddress
))
{
INTERNET_SetLastError
(
ERROR_INTERNET_NAME_NOT_RESOLVED
);
if
(
!
HTTP_ResolveName
(
lpwhr
))
return
FALSE
;
}
inet_ntop
(
lpwhs
->
socketAddress
.
sin_family
,
&
lpwhs
->
socketAddress
.
sin_addr
,
szaddr
,
sizeof
(
szaddr
));
INTERNET_SendCallback
(
&
lpwhr
->
hdr
,
lpwhr
->
hdr
.
dwContext
,
INTERNET_STATUS_NAME_RESOLVED
,
szaddr
,
strlen
(
szaddr
)
+
1
);
NETCON_close
(
&
lpwhr
->
netConnection
);
...
...
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