<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 TRANSITIONAL//EN">
<HTML>
<HEAD>
<META HTTP-EQUIV="Content-Type" CONTENT="text/html; CHARSET=UTF-8">
<META NAME="GENERATOR" CONTENT="GtkHTML/3.10.1">
</HEAD>
<BODY>
<PRE>
Hi,
</PRE>
MSDN states that we should use a blank password when a NULL password is given together with a NON-NULL username.<BR>
<!--+GtkHTML:<DATA class="ClueFlow" key="orig" value="0">--><BR>
Ethereal confirms this :-)
<PRE>
<!--+GtkHTML:<DATA class="ClueFlow" clear="orig">-->
Changelog
Use a blank password if a NULL password is given
Cheers,
Paul.
<!--+GtkHTML:<DATA class="ClueFlow" key="orig" value="0">-->
---
<!--+GtkHTML:<DATA class="ClueFlow" clear="orig">--> dlls/wininet/<A HREF="ftp://ftp.c">ftp.c</A> | 6 +++++-
1 files changed, 5 insertions(+), 1 deletions(-)
diff --git a/dlls/wininet/<A HREF="ftp://ftp.c">ftp.c</A> b/dlls/wininet/<A HREF="ftp://ftp.c">ftp.c</A>
index 5873ee8..32e21ab 100644
--- a/dlls/wininet/<A HREF="ftp://ftp.c">ftp.c</A>
+++ b/dlls/wininet/<A HREF="ftp://ftp.c">ftp.c</A>
@@ -1674,6 +1674,7 @@ HINTERNET FTP_Connect(LPWININETAPPINFOW
{
static const WCHAR szDefaultUsername[] = {'a','n','o','n','y','m','o','u','s','\0'};
static const WCHAR szDefaultPassword[] = {'u','s','e','r','@','s','e','r','v','e','r','\0'};
+ static const WCHAR szBlankPassword[] = {'\0'};
struct sockaddr_in socketAddr;
INT nsocket = -1;
UINT sock_namelen;
@@ -1733,7 +1734,10 @@ HINTERNET FTP_Connect(LPWININETAPPINFOW
}
else {
lpwfs->lpszUserName = WININET_strdupW(lpszUserName);
- lpwfs->lpszPassword = WININET_strdupW(lpszPassword);
+ if ( !lpszPassword)
+ lpwfs->lpszPassword = WININET_strdupW(szBlankPassword);
+ else
+ lpwfs->lpszPassword = WININET_strdupW(lpszPassword);
}
/* Don't send a handle created callback if this handle was created with InternetOpenUrl */
--
1.4.1
</PRE>
</BODY>
</HTML>