The main goal is to fix a bug where,
if a file is deleted from a project's download server,
a client will keep trying to download it for 2 weeks.
A download "file not found" is a permanent error, not transient.
(fixes#383)
In general, revised and renamed things to clarify the
distinction between permanent and transient errors.
Old functions:
handle_xfer_failure(), try_next_url(), xfer_failed(), retry_or_backoff()
New functions:
permanent_failure(), transient_failure()
- manager: compile fix for win (don't include sys/wait.h)
svn path=/trunk/boinc/; revision=13641
update_versions to add version 6 apps.
It looks for API_VERSION string in main executable,
adds the API version to the app_version XML,
and sets min_core_version to 6 for version 6+ apps
- API: include API_VERSION string
- convert tabs to spaces here and there
- scheduler: parse unused elements in <net_stats>
- ops/show_log.php: if no URL args, just show form (fixes#415)
- client: parse and store api_version (not used yet)
svn path=/trunk/boinc/; revision=13627
- client: parse <cpid_time> in scheduler reply;
add cpid_time field to PROJECT.
This defaults to the user_create_time.
In deciding which CPID to send in a scheduler request,
use the one with oldest cpid_time (not user_create_time).
This is the client half of fixing a bug that causes
CPID to flip/flop between to values in a certain case.
svn path=/trunk/boinc/; revision=13531
These let the Manager run the graphics app.
Graphics apps have physical name *v6graphics*
- Separated ACTIVE_TASK::write() and ACTIVE_TASK::write_gui().
These need to write largely disjoint set of items.
- code cleanup: remove a zillion "else"s in parsing code
- code cleanup: change a zillion match_tag(buf, "<foo/>"
to parse_bool(buf, "foo")
client/
app.C,h
client_state.C
client_types.C,h
lib/
gui_rpc_client.h
gui_rpc_client_ops.C
sched/
server_types.C
svn path=/trunk/boinc/; revision=12938
If <ended>1</ended> is included in config.xml,
this gets send to clients,
and they display a "Project ended - OK to detach" message.
client/
client_state.C
client_types.C,h
scheduler_op.C
clientgui/
VIewProjects.cpp
VIewProjectsGrid.cpp
lib/
gui_rpc_client.h
gui_rpc_client_ops.C
gui_rpc_client_print.C
sched/
sched_config.C,h
server_types.C
svn path=/trunk/boinc/; revision=12742
if the initial sched request failed,
the manager would show "communicating" for 60 sec,
then time out and show "failed to attach".
But the project would actually be attached.
This was due to a logic error,
but I fixed it in a more fundamental way:
by considering an attach to be complete immediately,
without waiting for a successful scheduler RPC.
This was originally done to ensure that the URL and account key were valid.
But when using the BOINC Manager, we've already verified
both of these before doing the attach project RPC.
When using boinc_cmd, you now have to check for messages
indicating a bad URL or account key.
I changed things to print these messages on every sched RPC.
Implementation: the notion of "tentative project" no longer exists.
client/
client_state.C,h
client_types.C,h
cs_account.C
cs_benchmarks.C
cs_scheduler.C
gui_rpc_server_ops.C
scheduler_op.C
sim.C
sim_util.C
svn path=/trunk/boinc/; revision=12663
Remove the tacet assumption that a host can handle
applications for a single platform.
With the Apr 30 scheduler changes,
a project may (at different times)
send app versions for the same app and version number,
but different platforms.
Before we would have ignored all but the first;
now we handle them correctly.
Implementation notes:
- Add APP_VERSION.platform, RESULT.platform,
and RESULT.version_num.
If these are missing from an XML doc
(e.g. an existing state file or a scheduler reply
from a project not running current server)
then set to the primary platform.
- Continue to write workunit.version_num
and active_task.version_num to state file,
even though these are no longer part of the struct.
This allows users to revert to an older version.
client/
app.C
check_state.C
client_state.C,h
client_types.C,h
cs_apps.C
cs_scheduler.C
cs_statefile.C
sim.C
svn path=/trunk/boinc/; revision=12542
* refactored the alternate platform mechinism so that we
can support multiple alternate platforms.
* moved everything to cs_platforms.C since we expect the
kind of sprawl that is in host_info.C on the *nix
environments.
- Clean up some warnings
client/
acct_setup.C
client_state.C, .h
client_types.h
cs_platforms.C (Added)
cs_scheduler.C
cs_statefile.C
http_curl.C
lib/
str_util.h
svn path=/trunk/boinc/; revision=12531