mirror of https://github.com/BOINC/boinc.git
- scheduler: add <no_vista_sandbox> option.
If set, don't send work to sandboxed Vista clients (e.g., because of CUDA issue) svn path=/trunk/boinc/; revision=16105
This commit is contained in:
parent
5a2a48caa9
commit
bb9d546a02
|
@ -7910,3 +7910,13 @@ Charlie 30 Sep 2008
|
|||
setupForBOINC.sh
|
||||
boinc.xcodeproj/
|
||||
project.pbxproj
|
||||
|
||||
David 1 Oct 2008
|
||||
- scheduler: add <no_vista_sandbox> option.
|
||||
If set, don't send work to sandboxed Vista clients
|
||||
(e.g., because of CUDA issue)
|
||||
|
||||
sched/
|
||||
handle_request.cpp
|
||||
sched_config.cpp,h
|
||||
server_types.cpp,h
|
||||
|
|
|
@ -1160,6 +1160,27 @@ static void log_request(SCHEDULER_REQUEST& sreq, SCHEDULER_REPLY& reply) {
|
|||
log_messages.set_indent_level(2);
|
||||
}
|
||||
|
||||
bool bad_install_type(SCHEDULER_REQUEST& sreq, SCHEDULER_REPLY& reply) {
|
||||
if (config.no_vista_sandbox) {
|
||||
if (!strcmp(sreq.host.os_name, "Microsoft Windows Vista")) {
|
||||
if (sreq.sandbox == 1) {
|
||||
log_messages.printf(MSG_INFO,
|
||||
"Vista secure install - not sending work\n"
|
||||
);
|
||||
USER_MESSAGE um(
|
||||
"Unable to send work to Vista with BOINC installed in protected mode", "high"
|
||||
);
|
||||
reply.insert_message(um);
|
||||
USER_MESSAGE um2(
|
||||
"Please reinstall BOINC and uncheck 'Protected application execution'", "high"
|
||||
);
|
||||
reply.insert_message(um2);
|
||||
}
|
||||
}
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
void process_request(
|
||||
SCHEDULER_REQUEST& sreq, SCHEDULER_REPLY& reply, char* code_sign_key
|
||||
) {
|
||||
|
@ -1337,9 +1358,15 @@ void process_request(
|
|||
|
||||
handle_results(sreq, reply);
|
||||
|
||||
// Do this before resending lost jobs
|
||||
//
|
||||
if (bad_install_type(sreq, reply)) {
|
||||
ok_to_send_work = false;
|
||||
}
|
||||
|
||||
reply.wreq.nresults_on_host = sreq.other_results.size();
|
||||
if (sreq.have_other_results_list) {
|
||||
if (config.resend_lost_results) {
|
||||
if (config.resend_lost_results && ok_to_send_work) {
|
||||
if (resend_lost_work(sreq, reply)) {
|
||||
ok_to_send_work = false;
|
||||
}
|
||||
|
|
|
@ -183,6 +183,7 @@ int SCHED_CONFIG::parse(FILE* f) {
|
|||
if (xp.parse_bool(tag, "job_size_matching", job_size_matching)) continue;
|
||||
if (xp.parse_bool(tag, "use_credit_multiplier", use_credit_multiplier)) continue;
|
||||
if (xp.parse_bool(tag, "multiple_clients_per_host", multiple_clients_per_host)) continue;
|
||||
if (xp.parse_bool(tag, "no_vista_sandbox", no_vista_sandbox)) continue;
|
||||
|
||||
|
||||
if (xp.parse_bool(tag, "debug_version_select", debug_version_select)) continue;
|
||||
|
|
|
@ -124,6 +124,7 @@ public:
|
|||
bool job_size_matching;
|
||||
bool use_credit_multiplier;
|
||||
bool multiple_clients_per_host;
|
||||
bool no_vista_sandbox;
|
||||
|
||||
// log flags
|
||||
//
|
||||
|
|
|
@ -161,6 +161,7 @@ const char* SCHEDULER_REQUEST::parse(FILE* fin) {
|
|||
have_ip_results_list = false;
|
||||
have_time_stats_log = false;
|
||||
client_cap_plan_class = false;
|
||||
sandbox = -1;
|
||||
|
||||
fgets(buf, sizeof(buf), fin);
|
||||
if (!match_tag(buf, "<scheduler_request>")) return "no start tag";
|
||||
|
@ -318,6 +319,7 @@ const char* SCHEDULER_REQUEST::parse(FILE* fin) {
|
|||
continue;
|
||||
}
|
||||
if (parse_bool(buf, "client_cap_plan_class", client_cap_plan_class)) continue;
|
||||
if (parse_int(buf, "<sandbox>", sandbox)) continue;
|
||||
|
||||
if (match_tag(buf, "<active_task_set>")) continue;
|
||||
if (match_tag(buf, "<app>")) continue;
|
||||
|
|
|
@ -306,6 +306,7 @@ struct SCHEDULER_REQUEST {
|
|||
bool have_ip_results_list;
|
||||
bool have_time_stats_log;
|
||||
bool client_cap_plan_class;
|
||||
int sandbox; // -1 = don't know
|
||||
|
||||
SCHEDULER_REQUEST();
|
||||
~SCHEDULER_REQUEST();
|
||||
|
|
Loading…
Reference in New Issue