diff --git a/mozilla/network/module/nsINetService.h b/mozilla/network/module/nsINetService.h index dc7669e076f..419b7123bac 100644 --- a/mozilla/network/module/nsINetService.h +++ b/mozilla/network/module/nsINetService.h @@ -179,6 +179,14 @@ struct nsINetService : public nsISupports */ NS_IMETHOD GetPlatform(nsString& aPlatform)=0; + /** + * Get the HTTP advertised user agent string. + * + * @param aUA The current user agent string being sent out in HTTP requests. + * @retrun Returns NS_OK if successful, or NS_FALSE if an error occurred. + */ + NS_IMETHOD GetUserAgent(nsString& aUA)=0; + /** * Add a string to the user agent AppVersion. * diff --git a/mozilla/network/module/nsNetService.cpp b/mozilla/network/module/nsNetService.cpp index f359bc5bdec..3f8e572099f 100644 --- a/mozilla/network/module/nsNetService.cpp +++ b/mozilla/network/module/nsNetService.cpp @@ -152,12 +152,17 @@ nsNetlibService::nsNetlibService() XP_AppPlatform = PL_strdup("Unix"); #endif - /* Build up the appversion. */ + /* XXXXX TEMPORARY TESTING HACK XXXXX */ char buf[64]; - sprintf(buf, "%s/4.05 [%s] (%s; I)", - XP_AppCodeName, + char *ver = PR_GetEnv("NG_REQUEST_VER"); + if (!ver) + ver = PL_strdup("4.05"); + /* Build up the appversion. */ + sprintf(buf, "%s [%s] (%s; I)", + ver, XP_AppLanguage, XP_AppPlatform); + FREEIF(ver); if (XP_AppVersion) PR_Free((char *)XP_AppVersion); XP_AppVersion = PL_strdup(buf); @@ -652,40 +657,47 @@ nsNetlibService::SetHTTPOneOne(PRBool aSendOneOne) { NS_IMETHODIMP nsNetlibService::GetAppCodeName(nsString& aAppCodeName) { - aAppCodeName.SetString("Mozilla"); + aAppCodeName.SetString(XP_AppCodeName); return NS_OK; } NS_IMETHODIMP nsNetlibService::GetAppVersion(nsString& aAppVersion) { - //This seems kinda wrong in x-platform code - aAppVersion.SetString("4.05 [en] (WinNT;I)"); + aAppVersion.SetString(XP_AppVersion); return NS_OK; } NS_IMETHODIMP nsNetlibService::GetAppName(nsString& aAppName) { - aAppName.SetString("Netscape"); + aAppName.SetString(XP_AppName); return NS_OK; } NS_IMETHODIMP nsNetlibService::GetLanguage(nsString& aLanguage) { - aLanguage.SetString("en"); + aLanguage.SetString(XP_AppLanguage); return NS_OK; } NS_IMETHODIMP nsNetlibService::GetPlatform(nsString& aPlatform) { - //This seems kinda wrong in x-platform code - aPlatform.SetString("Win32"); + aPlatform.SetString(XP_AppPlatform); return NS_OK; } +NS_IMETHODIMP +nsNetlibService::GetUserAgent(nsString& aUA) +{ + char buf[64]; + PR_snprintf(buf, 64, "%.100s/%.90s", XP_AppCodeName, XP_AppVersion); + aUA.SetString(buf); + return NS_OK; +} + NS_IMETHODIMP nsNetlibService::SetCustomUserAgent(nsString aCustom) { diff --git a/mozilla/network/module/nsNetService.h b/mozilla/network/module/nsNetService.h index 1f465dad122..18ad30e84b0 100644 --- a/mozilla/network/module/nsNetService.h +++ b/mozilla/network/module/nsNetService.h @@ -57,6 +57,7 @@ public: NS_IMETHOD GetAppName(nsString& aAppName); NS_IMETHOD GetLanguage(nsString& aLanguage); NS_IMETHOD GetPlatform(nsString& aPlatform); + NS_IMETHOD GetUserAgent(nsString& aUA); NS_IMETHOD SetCustomUserAgent(nsString aCustom); protected: