The problem was that there's a lot of extra stuff needed
for running apps on Windows (e.g. related to sandboxing).
This needed to be a new function.
svn path=/trunk/boinc/; revision=14879
- MGR: CreateProcessAsUser doesn't always error out when the ACLs haven't
been changed for a specific Desktop and WindowStation so go ahead
and Modify the ACLs with every call. It appears the ACLs revert
themselves after CreateProcessAsUser is called anyway.
client/
app_start.C
lib/
util.C
svn path=/trunk/boinc/; revision=14819
and window station to whichever desktop and window station
the app launching it belongs. If access is denied then
change the ACLs on the current desktop and window station
then attempt to relaunch the application.
lib/
util.C
svn path=/trunk/boinc/; revision=14812
Lets you assign a WU to a particular host,
to one or all hosts belonging to a user or team, or to all hosts.
See http://boinc.berkeley.edu/trac/wiki/AssignedWork
Disabled unless you include <enable_assignment> in config.xml
Uses a new DB table.
Tested but only a little.
- Server: code cleanup; moved result-handling to a new file,
and removed the PLATFORM_LIST arg to everything
(put it in SCHEDULER_REQUEST instead)
svn path=/trunk/boinc/; revision=14767
block for applications launched using the 'boinc_project' account.
Windows contains environment variables that describe username,
domain name, profile directory and even logon server.
- client: correctly parse domain name information from the
client_auth.xml file when a different account is used for
'boinc_master'.
- SCR/MGR: Add two API's to adjust the ACLs on the current users
desktop and windowstation so that graphics applications can
properly create controls and dialogs for applications
launched using 'boinc_project'.
client/
app_start.C
lib/
boinc_win.h
util.C, .h
lib/
win_util.C, .h
win_build/
boinc_cli_curl.vcproj
svn path=/trunk/boinc/; revision=14748
Win2k requires any user account that is going to attempt
to logon as another account to have admin privs.
- WINSETUP: Give 'boinc_project' the right to be able to
logon as a service, we denied the right to logon
interactively.
- WINSETUP: Disable the 'failed to shutdown BOINC service'
dialog box.
- CC: Use the client_auth.xml file if present to launch
boinc applications as boinc_project if it exists.
- LIB: Use the client_auth.xml file if present to launch
boinc graphics applications as boinc_project if it
exists.
client/
app_start.C
lib/
diagnostics_win.C
lib/
util.C, .h
win_build/installerv2/redist/Windows/src/boinccas/
boinccas.rc
CACreateBOINCGroups.cpp
CACreateClientAuthFile.cpp
CAGrantBOINCMasterRights.cpp
CAGrantBOINCProjectRights.cpp
CAShutdownBOINC.cpp
win_build/installerv2/redist/Windows/Win32/
boinccas.dll
boinccas95.dll
win_build/installerv2/redist/Windows/x64/
boinccas.dll
boinccas95.dll
win_build/
boinc_ss.vcproj
boincmgr_curl.vcproj
libboinc.vcproj
svn path=/trunk/boinc/; revision=14659
messages.
Policy Change: When installed as a service or daemon, the service
or daemon manager should start BOINC, not the BOINC Manager.
(Windows Only for right now, should eventually be applied
to all platforms)
- LIB: Undue my previous change that launched graphics apps as
an idle process.
- LIB: Take care of some warnings.
clientgui/
BOINCBaseFrame.cpp, .h
BOINCClientManager.cpp, .h (Added)
BOINCGUIApp.cpp, .h
MainDocument.cpp, .h
lib/
util.C
svn path=/trunk/boinc/; revision=14647
(this causes confusing output in the Manager,
bytes xferred greater than file size)
- API and client: make boinc_sleep() work regardless of signals
- some code cleanup in http_curl.C
svn path=/trunk/boinc/; revision=14522
This was because SIGALRM always interrupts sleep()
and keeps boinc_sleep() stuck in its while loop.
Solution: change boinc_sleep() so that it works even if
rapid signals (e.g. interval timer) are happening
- API: remove deprecated graphics files from Makefile.
Old-style graphics are no longer supported.
- web: add empty show_user_donations_private() to donations.inc
svn path=/trunk/boinc/; revision=14513
not the worker signal handler.
There's no reason to call it from the signal handler -
it returns the CPU for the entire process, not the calling thread.
And it may be asynch-signal-handler-unsafe.
- API: comment out checks for bad CPU times.
I don't think this is needed now, and in some cases it's wrong
(multi-threaded apps can accumulate CPU faster than real time)
- API, Unix: in boinc_calling_thread_cpu_time(), don't retry getrusage().
- Bossa: switch to better class structure (suggested by Nicolas Alvarez).
Haven't switched to mysqli yet, but will later.
Also various other Bossa fixes
svn path=/trunk/boinc/; revision=13855
and access to worker_thread_ru.
This was being used in the worker signal handler,
which is bad because pthread_mutex_lock() can allocate memory.
I don't think this matters; at worst we might get
CPU times off by < 1 sec.
svn path=/trunk/boinc/; revision=13844
like source code and text files. I skipped to check most files in html/
and mac_*/ though.
- Added svn:executable to tools/watch_tcp because it has a shebang.
svn path=/trunk/boinc/; revision=13819
- move client sandbox-specific code to a new file, sandbox.C
- remove g_use_sandbox from util.C; move to MainDocument.cpp (manager)
and sandbox.C (client)
- don't declare check_security() in util.h; it's not in util.C
- don't call remove_project_owned_file_or_dir() in
boinc_delete_file_aux() or boinc_rmdir();
rather, at the points in the client that delete
dirs that are usually owned by boinc_projects,
call remove_project_owned_file_or_dir() first,
then clean_out_dir().
- rename boinc_exec() to switcher_exec() and move it to sandbox.C
Note: this change was sparked by needing to remove a call to getgrnam()
from boinclib, to avoid requiring the same version of glibc
on both compile and target hosts
svn path=/trunk/boinc/; revision=13784
at most one regular and one full-screen graphics window can be open,
and a "hide" message kills the full-screen window if one exists,
else a regular window.
Keep track of the PIDs separately for regular and full-screen.
Also, don't send a "hide" ack if we don't do graphics.
svn path=/trunk/boinc/; revision=13697
in a V6 app (and launching/killing the graphics app)
- API: start timer thread even if in standalone mode
(needed to get timer callbacks for V6 graphics)
- API: remove BOINCSetForegroundWindow stuff
- API: call DestroyWindow instead of boinc_exit() in WM_CLOSE.
boinc_exit() is the wrong thing to call - e.g. it tries to delete
the lock file, resulting in a 5-sec delay on exit
svn path=/trunk/boinc/; revision=13679
in get_file_size() RPC, check if volume has < 1MB available space
and if so return transient error.
This prevents client from trying upload,
which apparently sends entire file even if
handler fails at the beginning
- API, Win: remove use of GetTickCount(); use dtime() instead
- use new BOINC logo in sample project home page
svn path=/trunk/boinc/; revision=13574
- 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
graphics window every second.
- LIB: CreateProcess always returns a 1 on success, which means
the last part of the run_program function was never being
executed.
clientscr/
screensaver_win.cpp
lib/
util.C
svn path=/trunk/boinc/; revision=13323
loop
read a line X
S += X
it performs real bad if the file is large
(allocation of std::string seems to stupid)
So I changed this to
find file size n
read file into malloced buf size n
S = buf
free buf
- lib: moved functions to appropriate file
client/
acct_setup.C
cs_prefs.C
lib/
parse.C,h
str_util.C,h
util.C,h
svn path=/trunk/boinc/; revision=12983
there is for each HR class, and writes it to a file.
This will be used soon for HR support in the feeder.
- split the HR code into hr.C,h (stuff used by both census and scheduler)
and sched_hr.C (stuff used only by the scheduler)
- database: change DB_CREDITED_JOB to treat workunitid
as a double (which it is) rather than a long.
BTW, long == int.
- fixed lots of compile warnings in the server code
db/
boinc_db.C,h
lib/
boinc_cmd.C
miofile.C
util.C
sched/
Makefile.am
census.C (new)
feeder.C
file_deleter.C
file_upload_handler.C
handle_request.C
hr.C,h (new)
main.C
sample_assimilator.C
sample_work_generator.C
sched_array.C
sched_hr.C,h
sched_send.C
server_types.C
transitioner.C
validator.C
svn path=/trunk/boinc/; revision=12970