urlmon: Implemented IUri_GetPassword.
This commit is contained in:
parent
50db65a43f
commit
20017183d3
|
@ -100,7 +100,7 @@ static const uri_properties uri_tests[] = {
|
|||
{"",S_FALSE,TRUE}, /* EXTENSION */
|
||||
{"",S_FALSE,TRUE}, /* FRAGMENT */
|
||||
{"www.winehq.org",S_OK,TRUE}, /* HOST */
|
||||
{"",S_FALSE,TRUE}, /* PASSWORD */
|
||||
{"",S_FALSE,FALSE}, /* PASSWORD */
|
||||
{"/",S_OK,TRUE}, /* PATH */
|
||||
{"/",S_OK,TRUE}, /* PATH_AND_QUERY */
|
||||
{"",S_FALSE,TRUE}, /* QUERY */
|
||||
|
@ -129,7 +129,7 @@ static const uri_properties uri_tests[] = {
|
|||
{"",S_FALSE,TRUE},
|
||||
{"",S_FALSE,TRUE},
|
||||
{"winehq.org",S_OK,TRUE},
|
||||
{"",S_FALSE,TRUE},
|
||||
{"",S_FALSE,FALSE},
|
||||
{"/tests",S_OK,TRUE},
|
||||
{"/tests",S_OK,TRUE},
|
||||
{"",S_FALSE,TRUE},
|
||||
|
@ -158,7 +158,7 @@ static const uri_properties uri_tests[] = {
|
|||
{"",S_FALSE,TRUE},
|
||||
{"",S_FALSE,TRUE},
|
||||
{"www.winehq.org",S_OK,TRUE},
|
||||
{"",S_FALSE,TRUE},
|
||||
{"",S_FALSE,FALSE},
|
||||
{"/",S_OK,TRUE},
|
||||
{"/?query=x&return=y",S_OK,TRUE},
|
||||
{"?query=x&return=y",S_OK,TRUE},
|
||||
|
@ -187,7 +187,7 @@ static const uri_properties uri_tests[] = {
|
|||
{"",S_FALSE,TRUE},
|
||||
{"",S_FALSE,TRUE},
|
||||
{"example.com",S_OK,TRUE},
|
||||
{"",S_FALSE,TRUE},
|
||||
{"",S_FALSE,FALSE},
|
||||
{"/path/a/Forbidden'%3C%7C%3E%20Characters",S_OK,TRUE},
|
||||
{"/path/a/Forbidden'%3C%7C%3E%20Characters",S_OK,TRUE},
|
||||
{"",S_FALSE,TRUE},
|
||||
|
@ -217,7 +217,7 @@ static const uri_properties uri_tests[] = {
|
|||
{".txt",S_OK,TRUE},
|
||||
{"",S_FALSE,TRUE},
|
||||
{"ftp.winehq.org",S_OK,TRUE},
|
||||
{"wine",S_OK,TRUE},
|
||||
{"wine",S_OK,FALSE},
|
||||
{"/dir/foo%20bar.txt",S_OK,TRUE},
|
||||
{"/dir/foo%20bar.txt",S_OK,TRUE},
|
||||
{"",S_FALSE,TRUE},
|
||||
|
@ -245,7 +245,7 @@ static const uri_properties uri_tests[] = {
|
|||
{".mp3",S_OK,TRUE},
|
||||
{"",S_FALSE,TRUE},
|
||||
{"",S_FALSE,TRUE},
|
||||
{"",S_FALSE,TRUE},
|
||||
{"",S_FALSE,FALSE},
|
||||
{"/c:/tests/foo%2520bar.mp3",S_OK,TRUE},
|
||||
{"/c:/tests/foo%2520bar.mp3",S_OK,TRUE},
|
||||
{"",S_FALSE,TRUE},
|
||||
|
@ -273,7 +273,7 @@ static const uri_properties uri_tests[] = {
|
|||
{".txt",S_OK,TRUE},
|
||||
{"",S_FALSE,TRUE},
|
||||
{"",S_FALSE,TRUE},
|
||||
{"",S_FALSE,TRUE},
|
||||
{"",S_FALSE,FALSE},
|
||||
{"/tests/test%20file.README.txt",S_OK,TRUE},
|
||||
{"/tests/test%20file.README.txt",S_OK,TRUE},
|
||||
{"",S_FALSE,TRUE},
|
||||
|
@ -301,7 +301,7 @@ static const uri_properties uri_tests[] = {
|
|||
{"",S_FALSE,TRUE},
|
||||
{"",S_FALSE,TRUE},
|
||||
{"",S_FALSE,TRUE},
|
||||
{"",S_FALSE,TRUE},
|
||||
{"",S_FALSE,FALSE},
|
||||
{"nothing:should:happen here",S_OK,TRUE},
|
||||
{"nothing:should:happen here",S_OK,TRUE},
|
||||
{"",S_FALSE,TRUE},
|
||||
|
@ -330,7 +330,7 @@ static const uri_properties uri_tests[] = {
|
|||
{".txt",S_OK,TRUE},
|
||||
{"",S_FALSE,TRUE},
|
||||
{"127.0.0.1",S_OK,TRUE},
|
||||
{"",S_FALSE,TRUE},
|
||||
{"",S_FALSE,FALSE},
|
||||
{"/test%20dir/test.txt",S_OK,TRUE},
|
||||
{"/test%20dir/test.txt",S_OK,TRUE},
|
||||
{"",S_FALSE,TRUE},
|
||||
|
@ -359,7 +359,7 @@ static const uri_properties uri_tests[] = {
|
|||
{"",S_FALSE,TRUE},
|
||||
{"",S_FALSE,TRUE},
|
||||
{"fedc:ba98:7654:3210:fedc:ba98:7654:3210",S_OK,TRUE},
|
||||
{"",S_FALSE,TRUE},
|
||||
{"",S_FALSE,FALSE},
|
||||
{"/",S_OK,TRUE},
|
||||
{"/",S_OK,TRUE},
|
||||
{"",S_FALSE,TRUE},
|
||||
|
@ -388,7 +388,7 @@ static const uri_properties uri_tests[] = {
|
|||
{"",S_FALSE,TRUE},
|
||||
{"",S_FALSE,TRUE},
|
||||
{"::13.1.68.3",S_OK,TRUE},
|
||||
{"",S_FALSE,TRUE},
|
||||
{"",S_FALSE,FALSE},
|
||||
{"/",S_OK,TRUE},
|
||||
{"/",S_OK,TRUE},
|
||||
{"",S_FALSE,TRUE},
|
||||
|
@ -417,7 +417,7 @@ static const uri_properties uri_tests[] = {
|
|||
{"",S_FALSE,TRUE},
|
||||
{"",S_FALSE,TRUE},
|
||||
{"fedc:ba98::3210",S_OK,TRUE},
|
||||
{"",S_FALSE,TRUE},
|
||||
{"",S_FALSE,FALSE},
|
||||
{"/",S_OK,TRUE},
|
||||
{"/",S_OK,TRUE},
|
||||
{"",S_FALSE,TRUE},
|
||||
|
@ -446,7 +446,7 @@ static const uri_properties uri_tests[] = {
|
|||
{"",S_FALSE,TRUE},
|
||||
{"",S_FALSE,TRUE},
|
||||
{"www.winehq.org",S_OK,TRUE},
|
||||
{"",S_FALSE,TRUE},
|
||||
{"",S_FALSE,FALSE},
|
||||
{"/",S_OK,TRUE},
|
||||
{"/",S_OK,TRUE},
|
||||
{"",S_FALSE,TRUE},
|
||||
|
@ -609,7 +609,7 @@ static const uri_properties uri_tests[] = {
|
|||
{".mp3",S_OK,TRUE},
|
||||
{"",S_FALSE,TRUE},
|
||||
{"",S_FALSE,TRUE},
|
||||
{"",S_FALSE,TRUE},
|
||||
{"",S_FALSE,FALSE},
|
||||
{"/C:/test/test.mp3",S_OK,TRUE},
|
||||
{"/C:/test/test.mp3",S_OK,TRUE},
|
||||
{"",S_FALSE,TRUE},
|
||||
|
@ -639,7 +639,7 @@ static const uri_properties uri_tests[] = {
|
|||
{".mp3",S_OK,TRUE},
|
||||
{"",S_FALSE,TRUE},
|
||||
{"server",S_OK,TRUE},
|
||||
{"",S_FALSE,TRUE},
|
||||
{"",S_FALSE,FALSE},
|
||||
{"/test.mp3",S_OK,TRUE},
|
||||
{"/test.mp3",S_OK,TRUE},
|
||||
{"",S_FALSE,TRUE},
|
||||
|
@ -668,7 +668,7 @@ static const uri_properties uri_tests[] = {
|
|||
{"",S_FALSE,TRUE},
|
||||
{"",S_FALSE,TRUE},
|
||||
{"www.winehq.org",S_OK,TRUE},
|
||||
{"",S_FALSE,TRUE},
|
||||
{"",S_FALSE,FALSE},
|
||||
{"/test",S_OK,TRUE},
|
||||
{"/test",S_OK,TRUE},
|
||||
{"",S_FALSE,TRUE},
|
||||
|
@ -698,7 +698,7 @@ static const uri_properties uri_tests[] = {
|
|||
{"",S_FALSE,TRUE},
|
||||
{"",S_FALSE,TRUE},
|
||||
{"www.winehq.org",S_OK,TRUE},
|
||||
{"",S_FALSE,TRUE},
|
||||
{"",S_FALSE,FALSE},
|
||||
{"/test",S_OK,TRUE},
|
||||
{"/test",S_OK,TRUE},
|
||||
{"",S_FALSE,TRUE},
|
||||
|
@ -780,7 +780,7 @@ static const uri_properties uri_tests[] = {
|
|||
{".ext",S_OK,TRUE},
|
||||
{"",S_FALSE,TRUE},
|
||||
{"",S_FALSE,TRUE},
|
||||
{"",S_FALSE,TRUE},
|
||||
{"",S_FALSE,FALSE},
|
||||
{"/../some dir/test.ext",S_OK,TRUE},
|
||||
{"/../some dir/test.ext",S_OK,TRUE},
|
||||
{"",S_FALSE,TRUE},
|
||||
|
@ -808,7 +808,7 @@ static const uri_properties uri_tests[] = {
|
|||
{"",S_FALSE,TRUE},
|
||||
{"",S_FALSE,TRUE},
|
||||
{"",S_OK,TRUE},
|
||||
{"",S_FALSE,TRUE},
|
||||
{"",S_FALSE,FALSE},
|
||||
{"//implicit/wildcard/uri%20scheme",S_OK,TRUE},
|
||||
{"//implicit/wildcard/uri%20scheme",S_OK,TRUE},
|
||||
{"",S_FALSE,TRUE},
|
||||
|
@ -838,7 +838,7 @@ static const uri_properties uri_tests[] = {
|
|||
{".com",S_OK,TRUE},
|
||||
{"",S_FALSE,TRUE},
|
||||
{"",S_FALSE,TRUE},
|
||||
{"",S_FALSE,TRUE},
|
||||
{"",S_FALSE,FALSE},
|
||||
{"/.//google.com",S_OK,TRUE},
|
||||
{"/.//google.com",S_OK,TRUE},
|
||||
{"",S_FALSE,TRUE},
|
||||
|
@ -869,7 +869,7 @@ static const uri_properties uri_tests[] = {
|
|||
{"",S_FALSE,TRUE},
|
||||
{"",S_FALSE,TRUE},
|
||||
{"winehq.org",S_OK,TRUE},
|
||||
{"pass:word",S_OK,TRUE},
|
||||
{"pass:word",S_OK,FALSE},
|
||||
{"/",S_OK,TRUE},
|
||||
{"/",S_OK,TRUE},
|
||||
{"",S_FALSE,TRUE},
|
||||
|
@ -900,7 +900,7 @@ static const uri_properties uri_tests[] = {
|
|||
{"",S_FALSE,TRUE},
|
||||
{"",S_FALSE,TRUE},
|
||||
{"ftp.google.com",S_OK,TRUE},
|
||||
{"PASS",S_OK,TRUE},
|
||||
{"PASS",S_OK,FALSE},
|
||||
{"/",S_OK,TRUE},
|
||||
{"/",S_OK,TRUE},
|
||||
{"",S_FALSE,TRUE},
|
||||
|
@ -931,7 +931,7 @@ static const uri_properties uri_tests[] = {
|
|||
{"",S_FALSE,TRUE},
|
||||
{"",S_FALSE,TRUE},
|
||||
{"ftp.google.com",S_OK,TRUE},
|
||||
{"PA%7B%7D",S_OK,TRUE},
|
||||
{"PA%7B%7D",S_OK,FALSE},
|
||||
{"/",S_OK,TRUE},
|
||||
{"/",S_OK,TRUE},
|
||||
{"",S_FALSE,TRUE},
|
||||
|
@ -962,7 +962,7 @@ static const uri_properties uri_tests[] = {
|
|||
{"",S_FALSE,TRUE},
|
||||
{"",S_FALSE,TRUE},
|
||||
{"ftp.google.com",S_OK,TRUE},
|
||||
{"",S_OK,TRUE},
|
||||
{"",S_OK,FALSE},
|
||||
{"/",S_OK,TRUE},
|
||||
{"/",S_OK,TRUE},
|
||||
{"",S_FALSE,TRUE},
|
||||
|
@ -993,7 +993,7 @@ static const uri_properties uri_tests[] = {
|
|||
{"",S_FALSE,TRUE},
|
||||
{"",S_FALSE,TRUE},
|
||||
{"ftp.google.com",S_OK,TRUE},
|
||||
{"",S_FALSE,TRUE},
|
||||
{"",S_FALSE,FALSE},
|
||||
{"/",S_OK,TRUE},
|
||||
{"/",S_OK,TRUE},
|
||||
{"",S_FALSE,TRUE},
|
||||
|
@ -1024,7 +1024,7 @@ static const uri_properties uri_tests[] = {
|
|||
{"",S_FALSE,TRUE},
|
||||
{"",S_FALSE,TRUE},
|
||||
{"ftp.google.com",S_OK,TRUE},
|
||||
{"",S_FALSE,TRUE},
|
||||
{"",S_FALSE,FALSE},
|
||||
{"/",S_OK,TRUE},
|
||||
{"/",S_OK,TRUE},
|
||||
{"",S_FALSE,TRUE},
|
||||
|
@ -1054,7 +1054,7 @@ static const uri_properties uri_tests[] = {
|
|||
{"",S_FALSE,TRUE},
|
||||
{"",S_FALSE,TRUE},
|
||||
{"winehq.org",S_OK,TRUE},
|
||||
{"word",S_OK,TRUE},
|
||||
{"word",S_OK,FALSE},
|
||||
{"/",S_OK,TRUE},
|
||||
{"/",S_OK,TRUE},
|
||||
{"",S_FALSE,TRUE},
|
||||
|
@ -1086,7 +1086,7 @@ static const uri_properties uri_tests[] = {
|
|||
{"",S_FALSE,TRUE},
|
||||
{"",S_FALSE,TRUE},
|
||||
{"winehq.org",S_OK,TRUE},
|
||||
{"%52%53ord",S_OK,TRUE},
|
||||
{"%52%53ord",S_OK,FALSE},
|
||||
{"/",S_OK,TRUE},
|
||||
{"/",S_OK,TRUE},
|
||||
{"",S_FALSE,TRUE},
|
||||
|
@ -1116,7 +1116,7 @@ static const uri_properties uri_tests[] = {
|
|||
{"",S_FALSE,TRUE},
|
||||
{"",S_FALSE,TRUE},
|
||||
{"winehq.org",S_OK,TRUE},
|
||||
{"word",S_OK,TRUE},
|
||||
{"word",S_OK,FALSE},
|
||||
{"/",S_OK,TRUE},
|
||||
{"/",S_OK,TRUE},
|
||||
{"",S_FALSE,TRUE},
|
||||
|
@ -1145,7 +1145,7 @@ static const uri_properties uri_tests[] = {
|
|||
{"",S_FALSE,TRUE},
|
||||
{"",S_FALSE,TRUE},
|
||||
{"test",S_OK,TRUE},
|
||||
{"",S_FALSE,TRUE},
|
||||
{"",S_FALSE,FALSE},
|
||||
{"/",S_OK,TRUE},
|
||||
{"/?:word@winehq.org/",S_OK,TRUE},
|
||||
{"?:word@winehq.org/",S_OK,TRUE},
|
||||
|
@ -1174,7 +1174,7 @@ static const uri_properties uri_tests[] = {
|
|||
{"",S_FALSE,TRUE},
|
||||
{"#:word@winehq.org/",S_OK,TRUE},
|
||||
{"test",S_OK,TRUE},
|
||||
{"",S_FALSE,TRUE},
|
||||
{"",S_FALSE,FALSE},
|
||||
{"/",S_OK,TRUE},
|
||||
{"/",S_OK,TRUE},
|
||||
{"",S_FALSE,TRUE},
|
||||
|
@ -1204,7 +1204,7 @@ static const uri_properties uri_tests[] = {
|
|||
{"",S_FALSE,TRUE},
|
||||
{"",S_FALSE,TRUE},
|
||||
{"winehq.org",S_OK,TRUE},
|
||||
{"word",S_OK,TRUE},
|
||||
{"word",S_OK,FALSE},
|
||||
{"/",S_OK,TRUE},
|
||||
{"/",S_OK,TRUE},
|
||||
{"",S_FALSE,TRUE},
|
||||
|
|
|
@ -860,6 +860,21 @@ static HRESULT WINAPI Uri_GetPropertyBSTR(IUri *iface, Uri_PROPERTY uriProp, BST
|
|||
}
|
||||
|
||||
switch(uriProp) {
|
||||
case Uri_PROPERTY_PASSWORD:
|
||||
if(This->userinfo_split > -1) {
|
||||
*pbstrProperty = SysAllocStringLen(
|
||||
This->canon_uri+This->userinfo_start+This->userinfo_split+1,
|
||||
This->userinfo_len-This->userinfo_split-1);
|
||||
hres = S_OK;
|
||||
} else {
|
||||
*pbstrProperty = SysAllocStringLen(NULL, 0);
|
||||
hres = S_FALSE;
|
||||
}
|
||||
|
||||
if(!(*pbstrProperty))
|
||||
return E_OUTOFMEMORY;
|
||||
|
||||
break;
|
||||
case Uri_PROPERTY_RAW_URI:
|
||||
*pbstrProperty = SysAllocString(This->raw_uri);
|
||||
if(!(*pbstrProperty))
|
||||
|
@ -942,6 +957,10 @@ static HRESULT WINAPI Uri_GetPropertyLength(IUri *iface, Uri_PROPERTY uriProp, D
|
|||
}
|
||||
|
||||
switch(uriProp) {
|
||||
case Uri_PROPERTY_PASSWORD:
|
||||
*pcchProperty = (This->userinfo_split > -1) ? This->userinfo_len-This->userinfo_split-1 : 0;
|
||||
hres = (This->userinfo_split > -1) ? S_OK : S_FALSE;
|
||||
break;
|
||||
case Uri_PROPERTY_RAW_URI:
|
||||
*pcchProperty = SysStringLen(This->raw_uri);
|
||||
hres = S_OK;
|
||||
|
@ -1094,13 +1113,8 @@ static HRESULT WINAPI Uri_GetHost(IUri *iface, BSTR *pstrHost)
|
|||
|
||||
static HRESULT WINAPI Uri_GetPassword(IUri *iface, BSTR *pstrPassword)
|
||||
{
|
||||
Uri *This = URI_THIS(iface);
|
||||
FIXME("(%p)->(%p)\n", This, pstrPassword);
|
||||
|
||||
if(!pstrPassword)
|
||||
return E_POINTER;
|
||||
|
||||
return E_NOTIMPL;
|
||||
TRACE("(%p)->(%p)\n", iface, pstrPassword);
|
||||
return Uri_GetPropertyBSTR(iface, Uri_PROPERTY_PASSWORD, pstrPassword, 0);
|
||||
}
|
||||
|
||||
static HRESULT WINAPI Uri_GetPath(IUri *iface, BSTR *pstrPath)
|
||||
|
|
Loading…
Reference in New Issue