You are viewing a plain text version of this content. The canonical link for it is here.
Posted to bugs@httpd.apache.org by bu...@apache.org on 2005/06/13 17:24:17 UTC

DO NOT REPLY [Bug 35343] New: - [PatchAvailable] Add MSI logging to ResolveServerName in Real_Features.dll

DO NOT REPLY TO THIS EMAIL, BUT PLEASE POST YOUR BUG�
RELATED COMMENTS THROUGH THE WEB INTERFACE AVAILABLE AT
<http://issues.apache.org/bugzilla/show_bug.cgi?id=35343>.
ANY REPLY MADE TO THIS MESSAGE WILL NOT BE COLLECTED AND�
INSERTED IN THE BUG DATABASE.

http://issues.apache.org/bugzilla/show_bug.cgi?id=35343

           Summary: [PatchAvailable] Add MSI logging to ResolveServerName in
                    Real_Features.dll
           Product: Apache httpd-2.0
           Version: 2.0-HEAD
          Platform: PC
        OS/Version: Windows XP
            Status: NEW
          Severity: minor
          Priority: P2
         Component: All
        AssignedTo: bugs@httpd.apache.org
        ReportedBy: eddiearmeen@yahoo.co.uk
                CC: eddiearmeen@yahoo.co.uk


There are a number of bugs and issues where people are trying to install 
apache on windows and they get an "Installation Interupted" error message, for 
some reason ResolveServerName has failed calling gethostbyname.  
ResolveServerName exits and there is no indication of why it fails.

I have added logging of WSAGetLastError when gethostbyname fails (I also added 
it for WSAStartup for good measure) so when users try to install using the MSI 
and it fails, by enabling msi logging they will at least have an indication of 
why it failed, instead of just that it failed.





Index: real_features.c
===================================================================
--- real_features.c     (revision 190008)
+++ real_features.c     (working copy)
@@ -65,6 +65,45 @@

 #define MAXHOSTNAMELEN 255

+#define MAXSTRINGLEN 2048
+
+
+UINT __stdcall LogMsiError( MSIHANDLE hInstall, char* szFunction,int  
dwError )
+{
+
+
+       char szBuf[MAXSTRINGLEN];
+    LPVOID lpMsgBuf;
+       MSIHANDLE hRecord;
+
+
+    FormatMessage(
+        FORMAT_MESSAGE_ALLOCATE_BUFFER |
+        FORMAT_MESSAGE_FROM_SYSTEM,
+        NULL,
+        dwError,
+        MAKELANGID(LANG_NEUTRAL, SUBLANG_DEFAULT),
+        (LPTSTR) &lpMsgBuf,
+        0, NULL );
+
+    wsprintf(szBuf,
+        "%s failed with error: %s",
+        szFunction, lpMsgBuf);
+
+
+    LocalFree(lpMsgBuf);
+
+
+
+       hRecord = MsiCreateRecord( 1 );
+       MsiRecordSetString( hRecord, 0, szBuf );
+       MsiProcessMessage(hInstall,INSTALLMESSAGE_INFO,hRecord);
+    MsiCloseHandle(hRecord);
+
+       return ERROR_SUCCESS;
+
+}
+
 UINT __declspec(dllexport) __stdcall ResolveServerName(MSIHANDLE hInstall)
 {
     char str[MAXHOSTNAMELEN + 7]; /* Allow for admin@ */
@@ -72,23 +111,27 @@
     struct hostent *p;
     WSADATA ver;
     int x, y;
-
+
     if (WSAStartup(MAKEWORD(2, 0), &ver)) {
         MsiSetPropertyA(hInstall, "RESOLVED_WINSOCK2", "0");
+               LogMsiError( hInstall, "Real_Features_Dll:ResolveServerName 
WSAStartup", WSAGetLastError() );
         return ERROR_SUCCESS;
     }

     if (ver.wVersion < 2) {
         WSACleanup();
         MsiSetPropertyA(hInstall, "RESOLVED_WINSOCK2", "0");
-        return ERROR_SUCCESS;
+               return ERROR_SUCCESS;
     }

     MsiSetPropertyA(hInstall, "RESOLVED_WINSOCK2", "1");

+
     if ((gethostname(str, MAXHOSTNAMELEN) != 0)) {
-        WSACleanup();
-        return ERROR_SUCCESS;
+       //We failed to get the hostname so log the actual winsock error
+               LogMsiError( hInstall, "Real_Features_Dll:ResolveServerName 
gethostname", WSAGetLastError() );
+               WSACleanup();
+               return ERROR_SUCCESS;
     }

     if (strchr(str, '.'))

-- 
Configure bugmail: http://issues.apache.org/bugzilla/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are the assignee for the bug, or are watching the assignee.

---------------------------------------------------------------------
To unsubscribe, e-mail: bugs-unsubscribe@httpd.apache.org
For additional commands, e-mail: bugs-help@httpd.apache.org