server: fix support for client break; show it on web

This commit is contained in:
David Anderson 2014-07-16 21:08:18 -07:00
parent 246f5a2d1e
commit 9a9041cf7d
5 changed files with 15 additions and 7 deletions

View File

@ -347,8 +347,6 @@ struct HOST {
//
char p_features[1024];
char virtualbox_version[256];
char client_brand[256];
// as specific in client_brand.txt config file on client
bool p_vm_extensions_disabled;
int num_opencl_cpu_platforms;
OPENCL_CPU_PROP opencl_cpu_prop[MAX_OPENCL_CPU_PLATFORMS];

View File

@ -305,9 +305,14 @@ function gpu_desc($x) {
function boinc_version($x) {
$y = strstr($x, 'BOINC');
if (!$y) return '';
$y = substr($y, 6);
$z = explode("]", $y, 2);
return $z[0];
$a = explode('|', $z[0]);
$v = $a[1];
if (array_key_exists(2, $a)) {
$brand = $a[2];
$v .= " ($brand)";
}
return $v;
}
function cpu_desc($host) {

View File

@ -505,9 +505,9 @@ static int modify_host_struct(HOST& host) {
g_request->core_client_minor_version,
g_request->core_client_release
);
if (strlen(host.client_brand)) {
if (strlen(g_request->client_brand)) {
strcat(buf, "|");
strcat(buf, host.client_brand);
strcat(buf, g_request->client_brand);
}
strcat(buf, "]");
g_request->coprocs.summary_string(buf2, sizeof(buf2));

View File

@ -184,6 +184,7 @@ const char* SCHEDULER_REQUEST::parse(XML_PARSER& xp) {
strcpy(authenticator, "");
strcpy(platform.name, "");
strcpy(cross_project_id, "");
strcpy(client_brand, "");
hostid = 0;
core_client_major_version = 0;
core_client_minor_version = 0;
@ -423,6 +424,9 @@ const char* SCHEDULER_REQUEST::parse(XML_PARSER& xp) {
if (xp.parse_int("sandbox", sandbox)) continue;
if (xp.parse_int("allow_multiple_clients", allow_multiple_clients)) continue;
if (xp.parse_string("client_opaque", client_opaque)) continue;
if (xp.parse_str("client_brand", client_brand, sizeof(client_brand))) continue;
// unused or deprecated stuff follows
if (xp.match_tag("active_task_set")) continue;
if (xp.match_tag("app")) continue;
@ -1249,7 +1253,6 @@ int HOST::parse(XML_PARSER& xp) {
if (xp.parse_double("n_bwdown", n_bwdown)) continue;
if (xp.parse_str("p_features", p_features, sizeof(p_features))) continue;
if (xp.parse_str("virtualbox_version", virtualbox_version, sizeof(virtualbox_version))) continue;
if (xp.parse_str("client_brand", client_brand, sizeof(client_brand))) continue;
if (xp.parse_bool("p_vm_extensions_disabled", p_vm_extensions_disabled)) continue;
if (xp.match_tag("opencl_cpu_prop")) {
int retval = opencl_cpu_prop[num_opencl_cpu_platforms].parse(xp);

View File

@ -287,6 +287,8 @@ struct SCHEDULER_REQUEST {
char working_global_prefs_xml[BLOB_SIZE];
char code_sign_key[4096];
bool dont_send_work;
char client_brand[256];
// as specifiedc in client_brand.txt config file on client
std::vector<CLIENT_APP_VERSION> client_app_versions;