Commit Graph

45 Commits

Author SHA1 Message Date
David Anderson d503836a6a wrapper: check that task executables are in the list of app files from client 2015-09-23 00:02:52 -07:00
David Anderson 21817420af client and API: pass list of app version files in init_data.xml
This lets wrappers check that executables specified in job.xml are signed.
2015-08-19 21:01:09 -07:00
Rom Walton 0afb366294 LIB: Fix potential parser problem with applications compiled against really old BOINC API code (pre-2012). 2014-12-19 11:29:43 -05:00
David Anderson db501739a6 client: timestamp all writes to stderr 2014-11-14 13:07:24 -08:00
Charlie Fenton 328d87be26 API: Fix a bug in boinc_get_opencl_ids() which incorrectly returned CL_INVALID_DEVICE on some systems. This would happen on hosts with multiple GPUs if:
* the host has GPUs from two different vendors with different OpenCL platforms (e.g., NVIDIA and AMD), and
 * the second platform queried has more GPUs than the first one, and
 * the requested GPU is a higher numbed one in the second platform.
2014-09-22 04:57:23 -07:00
Eric J Korpela ce37b73fc4 Fixed avx detection on GCC windows compiles
More windows library detection added to configure.ac
Additional cross compile fixes for libboinc and client.
2014-06-20 07:48:31 -07:00
Rom Walton 7cca8a59eb client: Add vm_extensions_disabled as an element to APP_INIT_DAATA. We can use the additional information to selectively enable/disable hardware acceleration in VirtualBox. 2013-10-03 23:52:05 -04:00
David Anderson 67c20e9fce API: remove logic that makes new app graphics work with version 5 clients. 2013-07-09 16:22:10 -07:00
David Anderson 846b8c7757 all components: change strcpy() to strlcpy() when possible.
This commit should cover the client and manager code.
2013-06-03 20:24:48 -07:00
David Anderson 6cbaefba91 - client and API: add gpu_usage field to APP_INIT_DATA,
so an app can find out what GPU fraction it's expected to use
2013-03-22 10:39:52 +01:00
David Anderson 7d40c46923 - client and API: improve the way an app checks for the death of the client
Old: heartbeat mechanism
    Problem: if the client is blocked for > 30 secs
        (e.g. because it takes a long time to write the state file,
        of because it's stopped in a debugger)
        then apps exit.
        This is bad is the app doesn't checkpoint and has been
        running for a long time.
    New: the client passes its PID to the app.
        The app periodically (10 sec) checks that the process still exists.
    Notes:
    - For backward compatibility (e.g. new API w/ old client,
        or vice versa) the client still sends heartbeats,
        and the API checks heartbeats if the client doesn't pass a PID.
    - The new mechanism works only if the client's PID isn't assigned
        to a new process within 10 secs of the client exiting.
        Windows 2000 reuses PIDs immediately, so check for Win2K
        and don't use this mechanism if so.

TODO: For Unix multithread apps,
    critical sections aren't currently being enforced.
    Need to fix this by masking signals.


svn path=/trunk/boinc/; revision=26147
2012-10-11 16:41:31 +00:00
David Anderson 6b81e2ffc3 - scheduler: fix sending of NCI jobs.
We were failing to mark the cache entries as free.
- API: initialize GPU device # to -1;
    If client doesn't give us a device number, something is wrong
    and it's better to not start computing.


svn path=/trunk/boinc/; revision=26079
2012-09-06 23:44:03 +00:00
David Anderson 53782b7de4 - lib: switch include order to the way it was (general to specific).
Should fix MinGW compile


svn path=/trunk/boinc/; revision=26008
2012-08-11 05:47:18 +00:00
David Anderson 405f567c81 - code cleanup: in foo.cpp, include foo.h first
svn path=/trunk/boinc/; revision=25933
2012-08-01 20:04:05 +00:00
David Anderson b2a4cd4d91 svn path=/trunk/boinc/; revision=25691 2012-05-18 17:38:16 +00:00
Charlie Fenton fd999fc652 OpenCL: workaround for GPUs reported by CUDA but not by Mac OpenCL
svn path=/trunk/boinc/; revision=25109
2012-01-20 13:30:47 +00:00
David Anderson 81b29b0cc9 - API: fix queueing problem for graphics-related messages
(web graphics URL and remote desktop addr)
- GUI RPC and API:
    change "remote_desktop_connection" to "remote_desktop_addr" everywhere.
    It's an address, not a connection.
- vboxwrapper: log message cleanup


svn path=/trunk/boinc/; revision=25044
2012-01-13 19:00:16 +00:00
David Anderson dd93780787 - API and client: add "ncpus" field to APP_INIT_DATA.
Tells multicore apps how many cores to use.
    The --nthreads command line arg to the app is now deprecated
    though we'll keep it around for the time being.


svn path=/trunk/boinc/; revision=24708
2011-12-01 18:44:19 +00:00
David Anderson 53af2ae778 - client/API: pass bool using_sandbox in APP_INIT_DATA;
says whether the client is using account-based sandboxing.
    Needed by vboxwrapper.
- web: don't show authenticator in Your Account page.
    The problem with authenticators is that if a bad guys gets yours,
    they can log in to your account even if you change your password.
    Eventually we should not use them at all
    (i.e. in cookies and sent to client).
- make_project: copy python stuff (e.g. bin/start) for web-only projects;
    generate appropriate project.readme file for web-only projects.


svn path=/trunk/boinc/; revision=24447
2011-10-21 06:58:35 +00:00
David Anderson 9dddcdb10c - XML parsing: do XML unescaping in place rather than allocating
a buffer on the stack.
    Fixes a Manager crash on the Mac,
    where the default thread stack size seems to be 512KB.


svn path=/trunk/boinc/; revision=24206
2011-09-14 17:58:53 +00:00
David Anderson a858fe79d7 - client: don't pass --gpu_type to GPU apps;
this breaks many existing apps.
    Instead, pass the GPU type (and the device number)
    in app_init_data.xml


svn path=/trunk/boinc/; revision=24155
2011-09-11 03:28:22 +00:00
David Anderson c5c5975b44 - Improve interface of XML_PARSER.
Add parsed_tag and is_tag to the class,
    so that parsing functions don't need to declare them
    and pass them around.
- Complete the task of using XML_PARSER as the argument
    to all parsing functions.
    (Internally, many of these functions still use the old XML parser;
    that's the next step.)


svn path=/trunk/boinc/; revision=23978
2011-08-10 17:11:08 +00:00
David Anderson 609d5665cc - client: pass XML_PARSER& rather than MIOFILE& to parse functions.
Preparatory to using new-style XML parsing everywhere.


svn path=/trunk/boinc/; revision=23975
2011-08-09 21:44:14 +00:00
David Anderson c152968f53 - scheduler/client/API: pass user ID and team ID from scheduler to client,
and from client to app (host ID is already passed).
    E@h asked for this, not sure why.

svn path=/trunk/boinc/; revision=22902
2011-01-13 22:40:48 +00:00
David Anderson c7e13eafb3 - client: write GPU info to client_state.xml,
so that it can be input file to the client simulator.

svn path=/trunk/boinc/; revision=22405
2010-09-23 20:54:49 +00:00
David Anderson e0cea31781 - API: add result name to APP_INFO_DATA structure (for Volpex)
- scheduler: add max_download_urls_per_file config option
    (to limit the length of workunit.xml_doc,
    which is currently capped at 64KB).
    From Bernd.

svn path=/trunk/boinc/; revision=22082
2010-07-30 21:43:23 +00:00
Rom Walton 9cb3e6ffc7 - client & lib: bring header inclusion up-to-date for the CC to begin
hunting down a memory leak.
        
    client/
        <Various Files>
    lib/
        <Various Files>

svn path=/trunk/boinc/; revision=21457
2010-05-11 19:10:29 +00:00
Rom Walton e14e1cad34 - Remove BOINC_RCSID tags from source files, we are doing branching and tagging
properly.
        
    <Various Files>

svn path=/trunk/boinc/; revision=20873
2010-03-12 16:51:57 +00:00
David Anderson 7fc33c1b6d svn path=/trunk/boinc/; revision=20649 2010-02-18 22:45:36 +00:00
David Anderson 6dd7401da7 - various components: fix inconsistencies in how user names
and team names are represented.
    In particular, edit_user_info_action.php was using
    htmlentities() on names; this led to double-encoding.

    The new rules:
    1) no HTML tags allowed in either one.
        This is enforced silently, using strip_tags()
    2) names are stored in the DB exactly as entered.
        They may contain chars like & and >.
        They may contain non-ASCII characters
        (use UTF-8 if you want them displayed correctly).
        None of these are not escaped.
    3) When the names are put in XML
        (e.g. in scheduler reply or db_dump output)
        they are XML-escaped.
        This escapes <, &, and non-ASCII chars
    4) The client leaves them in this form,
        and writes them that way in GUI RPCs
        and init_data.xml files.
    5) The parsing of GUI RPC replies and init_data.xml files
        XML-unescapes them.

svn path=/trunk/boinc/; revision=20647
2010-02-18 22:33:26 +00:00
David Anderson 9e3c729394 svn path=/trunk/boinc/; revision=20194 2010-01-19 00:57:25 +00:00
David Anderson 3db80eb5c1 - API: fix crashing bug. Don't memset(0) APP_INIT_DATA;
it contains HOST_INFO, which now contains COPROCS,
    which has a vector.
    Define a clear() for APP_INIT_DATA.

svn path=/trunk/boinc/; revision=20191
2010-01-18 23:01:43 +00:00
David Anderson e27659858d - result of code shuffle: the HOST_INFO structure returned
by the get_host_info() GUI RPC now contains GPU info

svn path=/trunk/boinc/; revision=19798
2009-12-07 06:13:17 +00:00
David Anderson b29f920999 - Move URL-related code to a new file
- Remove stuff related to SOCKS version, since we only support 5

svn path=/trunk/boinc/; revision=19480
2009-11-05 18:02:51 +00:00
David Anderson a24410c659 - code shuffling; not significant
svn path=/trunk/boinc/; revision=19183
2009-09-25 21:56:13 +00:00
Bruce Allen c62cc0739c From Oliver Bock: ipc: write and parse APP_INIT_DATA "hostid"
svn path=/trunk/boinc/; revision=19161
2009-09-25 10:47:23 +00:00
David Anderson 563a55f37e - client/libs/samples: remove "#define read _read" etc. from boinc_win.h
These cause problems when "read" is a member name, etc.
		Do these #defines, conditioned on _MSC_VER,
		in the files that actually need them.
	- don't include boinc_win.h from parse.h.
		principle of minimal inclusion

svn path=/trunk/boinc/; revision=18902
2009-08-22 17:00:19 +00:00
David Anderson 1dba786d7b - API: add boinc_elapsed_time() to get elapsed time since start of episode;
add APP_INIT_DATA::starting_elapsed_time to get
    elapsed time from previous episodes

svn path=/trunk/boinc/; revision=18535
2009-07-01 17:35:56 +00:00
David Anderson 10f9e11ee6 - lib: created a new file for declaring "replacements"
for functions like strlcpy() etc.
    config.h is included here rather than in str_util.h


svn path=/trunk/boinc/; revision=18437
2009-06-16 20:54:44 +00:00
David Anderson 017b61283b - client, API: populate APP_INIT_DATA::hostid.
Remove userid and teamid fields, since the client doesn't know these.

svn path=/trunk/boinc/; revision=17216
2009-02-11 23:01:21 +00:00
David Anderson 315f205a68 compile fix
svn path=/trunk/boinc/; revision=17214
2009-02-11 22:46:34 +00:00
David Anderson 84a02bdbeb svn path=/trunk/boinc/; revision=17213 2009-02-11 22:39:59 +00:00
David Anderson 2c068b76dc - lib: implement APP_INIT_DATA::copy() with assignments instead of
memcpy().  This protects against any future double-free bugs.

svn path=/trunk/boinc/; revision=17212
2009-02-11 22:36:33 +00:00
David Anderson 268b694932 - client: if an app has avg_ncpus < 1, run it at above-idle priority
even if it doesn't use a coprocessor.
- scheduler: added an "nci" (non CPU intensive) plan class
    to sched_plan.cpp.  It declares the use of 1% of a CPU.

The above two changes are intended to allow the QCN app to
run at above_idle priority, which it needs in order to do 500Hz polling.

- API: the std::string version of boinc_resolve_filename()
    acts the same as the char[] version.

svn path=/trunk/boinc/; revision=16985
2009-01-22 19:51:04 +00:00
David Anderson 98cfb8d3b0 - rename .C files to .cpp so that Doxygen will work
svn path=/trunk/boinc/; revision=16069
2008-09-26 18:20:24 +00:00