From: mike Date: Wed, 16 Jan 2013 22:49:13 +0000 (+0000) Subject: Update Server and User-Agent strings. X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=34c1d19a98f859cb24fac75816a076a72ec1e86d;p=thirdparty%2Fcups.git Update Server and User-Agent strings. git-svn-id: svn+ssh://src.apple.com/svn/cups/cups.org/trunk@10821 7a7537e8-13f0-0310-91df-b6672ffda945 --- diff --git a/cups/http.c b/cups/http.c index 146c8c7e1c..0121fc6371 100644 --- a/cups/http.c +++ b/cups/http.c @@ -152,6 +152,7 @@ # include # include # include +# include #endif /* WIN32 */ #ifdef HAVE_POLL # include @@ -4792,9 +4793,46 @@ http_send(http_t *http, /* I - Connection to server */ */ if (!http->fields[HTTP_FIELD_USER_AGENT][0]) - httpSetField(http, HTTP_FIELD_USER_AGENT, - http->default_user_agent ? http->default_user_agent : - CUPS_MINIMAL); + { + if (http->default_user_agent) + { + httpSetField(http, HTTP_FIELD_USER_AGENT, http->default_user_agent); + } + else + { +#ifdef WIN32 + SYSTEM_INFO sysinfo; /* System information */ + OSVERSIONEX version; /* OS version info */ + + version.dwOSVersionInfoSize = sizeof(OSVERSIONEX); + GetVersionInfoEx(&version); + GetNativeSystemInfo(&sysinfo); + + snprintf(buf, sizeof(buf), CUPS_MINIMAL " (Windows %d.%d; %s) IPP/2.0", + version.major, version.minor, + sysinfo.wProcessorArchitecture + == PROCESSOR_ARCHITECTURE_AMD64 ? "amd64" : + sysinfo.wProcessorArchitecture + == PROCESSOR_ARCHITECTURE_ARM ? "arm" : + sysinfo.wProcessorArchitecture + == PROCESSOR_ARCHITECTURE_IA64 ? "ia64" : + sysinfo.wProcessorArchitecture + == PROCESSOR_ARCHITECTURE_INTEL ? "intel" : + "unknown"); + +#else + struct utsname name; /* uname info */ + + uname(&name); + + snprintf(buf, sizeof(buf), CUPS_MINIMAL " (%s %s; %s) IPP/2.0", + name.sysname, name.release, name.machine); +#endif /* WIN32 */ + + DEBUG_printf(("8http_send: Default User-Agent: %s", buf)); + httpSetField(http, HTTP_FIELD_USER_AGENT, buf); + } + } /* * Set the Accept-Encoding field if it isn't already... diff --git a/scheduler/conf.c b/scheduler/conf.c index d6c64440c4..1613e9757e 100644 --- a/scheduler/conf.c +++ b/scheduler/conf.c @@ -590,7 +590,7 @@ cupsdReadConfiguration(void) cupsdSetString(&Printcap, CUPS_DEFAULT_PRINTCAP); cupsdSetString(&FontPath, CUPS_FONTPATH); cupsdSetString(&RemoteRoot, "remroot"); - cupsdSetStringf(&ServerHeader, "CUPS/%d.%d", CUPS_VERSION_MAJOR, + cupsdSetStringf(&ServerHeader, "CUPS/%d.%d IPP/2.1", CUPS_VERSION_MAJOR, CUPS_VERSION_MINOR); cupsdSetString(&StateDir, CUPS_STATEDIR); @@ -3207,19 +3207,20 @@ read_cupsd_conf(cups_file_t *fp) /* I - File to read from */ uname(&plat); if (!_cups_strcasecmp(value, "ProductOnly")) - cupsdSetString(&ServerHeader, "CUPS"); + cupsdSetString(&ServerHeader, "CUPS IPP"); else if (!_cups_strcasecmp(value, "Major")) - cupsdSetStringf(&ServerHeader, "CUPS/%d", CUPS_VERSION_MAJOR); + cupsdSetStringf(&ServerHeader, "CUPS/%d IPP/2", CUPS_VERSION_MAJOR); else if (!_cups_strcasecmp(value, "Minor")) - cupsdSetStringf(&ServerHeader, "CUPS/%d.%d", CUPS_VERSION_MAJOR, + cupsdSetStringf(&ServerHeader, "CUPS/%d.%d IPP/2.1", CUPS_VERSION_MAJOR, CUPS_VERSION_MINOR); else if (!_cups_strcasecmp(value, "Minimal")) - cupsdSetString(&ServerHeader, CUPS_MINIMAL); + cupsdSetString(&ServerHeader, CUPS_MINIMAL " IPP/2.1"); else if (!_cups_strcasecmp(value, "OS")) - cupsdSetStringf(&ServerHeader, CUPS_MINIMAL " (%s)", plat.sysname); + cupsdSetStringf(&ServerHeader, CUPS_MINIMAL " (%s %s) IPP/2.1", + plat.sysname, plat.release); else if (!_cups_strcasecmp(value, "Full")) - cupsdSetStringf(&ServerHeader, CUPS_MINIMAL " (%s) IPP/2.1", - plat.sysname); + cupsdSetStringf(&ServerHeader, CUPS_MINIMAL " (%s %s; %s) IPP/2.1", + plat.sysname, plat.release, plat.machine); else if (!_cups_strcasecmp(value, "None")) cupsdClearString(&ServerHeader); else