Commit Graph

250 Commits

Author SHA1 Message Date
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
Rom Walton 3bc326db3e - client: Add plumbing to support passing the remote desktop
connection information to the manager
    - MGR: Add a "Show VM Console" button for those tasks which
        report a remote desktop port number.

    client/
        app.cpp, .h
        app_control.cpp
    clientgui/
        Events.h
        MainDocument.cpp, .h
        ViewWork.cpp, .h
    lib/
        gui_rpc_client.h
        gui_rpc_client_ops.cpp

svn path=/trunk/boinc/; revision=25036
2012-01-12 22:05:25 +00:00
David Anderson fc6d530a6c - client: shuffle disk usage code in preparation for disk accounting
- use new XML parser in some GUI RPC code


svn path=/trunk/boinc/; revision=24925
2011-12-28 14:52:03 +00:00
David Anderson b003b8e290 - add support for APP::needs_network flag.
If set, don't run jobs for that app while network is suspended.
		- client: parse this flag and maintain in state file;
			do a job reschedule when network suspend state changes
		- GUI RPC: add RESULT::network_wait flag;
			if set, this job is waiting for network access to be allowed
		- Manager: display the above in task info
	- add support for "web graphics URL" (see above)
		- client: parse message containing URL on graphics_reply channel
			and store in ACTIVE_TASK::web_graphics_url
		- GUI RPC: add RESULT::web_graphics_url
		- Manager: if web graphics URL is present, Show Graphics opens a browser
	- remove some vestigial code for pre-V6 graphics

svn path=/trunk/boinc/; revision=24899
2011-12-26 03:30:32 +00:00
David Anderson e8027a224e - client: isdigit() asserts if its arg is negative (which it can be).
Call isascii() first.
	- GUI RPC lib: add some consts

svn path=/trunk/boinc/; revision=24726
2011-12-04 19:02:36 +00:00
Rom Walton afb727eba3 - Remove dead code related to v5 graphics applications from the
client software.
    
    client/
        boinc_cmd.cpp
    clientgui/
        AsyncRPC.cpp, .h
        BOINCGUIApp.cpp, .h
        MainDocument.cpp
    clientgui/gtk/
        taskbarex.cpp
    clientscr/
        screensaver.cpp
    lib/
        gui_rpc_client.h
        gui_rpc_client_ops.cpp
    win_build/
        win-config.h

svn path=/trunk/boinc/; revision=24398
2011-10-14 19:02:43 +00:00
David Anderson 115ca46730 - GUI RPC: add get_daily_xfer_history() RPC for getting
the daily records of #bytes uploaded and downloaded


svn path=/trunk/boinc/; revision=24340
2011-10-06 17:23:16 +00:00
David Anderson e279b59913 - Updates Linux notifications to use current libnotify.
- Fix build problems on Mac OS X using autotools
- Consistently use #if HAVE_X for platform checks,
    rather than #ifdef HAVE_X or #if defined(HAVE_X)
- In Unix build, make lots of compiler checks standard
- Fix some compile warnings

From Matt Arsenault.

Note: there are now lots of compile warnings in clientgui/ on Unix,
    mostly in WxWidgets code


svn path=/trunk/boinc/; revision=24303
2011-09-27 19:45:27 +00:00
David Anderson 55b9d48deb - client, GUI RPC, Manager:
in GUI RPC, change RESULT.gpu_mem_wait to scheduler_wait.
    It means that the app did a boinc_temporary_exit(),
    and is waiting to be rescheduled.
    GPU mem wait is one source of this, not the only one


svn path=/trunk/boinc/; revision=24176
2011-09-13 05:54:55 +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 8296968cbb - client: changes to the client file model to support distributed storage,
as described here: http://boinc.berkeley.edu/trac/wiki/ClientDataModel
        Compatibility:
            clients that upgrade to this version should see nothing unusual.
            Clients that downgrade from this version to a previous version
            should see all projects reset
            (i.e. tasks disappear and then get re-downloaded).
    - manager: always show whether a file transfer is upload or download
    - client: don't scale work requests by resource share

svn path=/trunk/boinc/; revision=23862
2011-07-20 19:12:10 +00:00
David Anderson b8ba609604 - Manager and GUI RPC:
Remove debt fields from PROJECT: not used anymore
    Add sched_priority field


svn path=/trunk/boinc/; revision=23830
2011-07-11 04:57:56 +00:00
Charlie Fenton 163978a369 lib: fill in missing entries in COPROCS GUI RPCs, ensure that old data is reset when connecting to a different host (not yet complete)
svn path=/trunk/boinc/; revision=23765
2011-06-22 11:25:06 +00:00
David Anderson 6c59ef3bff - GUI RPC: restore <have_cuda>, <have_ati> elements in CC_STATE for compatibility
- client: copy coprocs to host_info._coprocs at startup
		(else GUI RPCs don't have right info)

svn path=/trunk/boinc/; revision=23757
2011-06-20 23:18:37 +00:00
David Anderson 04c48d67b8 - web: use ReCaptcha for account creation as well as profile creation
(from Daniel)
- GUI RPC: remove have_cuda from CC_STATE.
    Use the info in host_info.coprocs instead.


svn path=/trunk/boinc/; revision=23755
2011-06-20 17:17:56 +00:00
Charlie Fenton 9a4b695299 lib, MGR: Implement get_cc_config, set_cc_config RPCs
svn path=/trunk/boinc/; revision=23470
2011-04-27 11:01:07 +00:00
David Anderson 3b906a191c - client: generalize the GPU framework so that
- new GPU types can be added easily
		- users can specify GPUs in cc_config.xml,
			referred to by app_info.xml,
			and they will be scheduled by BOINC
			and passed --device N options
			Note: the parsing of cc_config.xml is not done yet.
		- RPC protocols (account manager and scheduler)
			can now specify GPU types in separate elements
			rather than embedding them in tag names
			e.g. <no_rsc>NVIDIA</no_rsc> rather than <no_cuda/>
	- client: in account manager replies, parse elements of the form
		<no_rsc>NAME</no_rsc>
		indicating the GPUs of type NAME should not be used.
		This allows account managers to control GPU types
		not hardwired into the client.
		Note: <no_cuda/> and <no_ati/> will continue to be supported.
	- scheduler RPC reply: add
		<no_rsc_apps>NAME</no_rsc_apps>
		(NAME = GPU name)
		to indicate that the project has no jobs for the indicated GPU type.
		<no_cuda_apps> etc. are still supported 
	- client/lib: remove set_debts() GUI RPC
	- client/scheduler RPC
		remove <cuda_backoff> etc. (superceded by no_app)
		Exception: <ip_result> elements in sched request
		still have <ncudas> and <natis>.
		Fix this later.

	Implementation notes:
	- client/lib: change "CUDA" to "NVIDIA" in type/variable names, and in XML
		Continue to recognize "CUDA" for compatibility
	- host_info.coprocs no longer used within the client;
		use a global var (COPROCS coprocs) instead.
		COPROCS now has an array of COPROCs;
		GPUs types are identified by the array index.
		Index zero means CPU.
	- a bunch of other resource-specific structs (like RSC_WORK_FETCH)
		are now stored in arrays, with same indices as COPROCS
		(i.e. index 0 is CPU)
	- COPROCS still has COPROC_NVIDIA and COPROC_ATI structs to hold vendor-specific info
	- APP_VERSION now has a struct GPU_USAGE to describe its GPU usage

svn path=/trunk/boinc/; revision=23253
2011-03-25 03:44:09 +00:00
David Anderson b2f04c9784 - client/manager: show venue in project properties
svn path=/trunk/boinc/; revision=22995
2011-02-04 18:52:14 +00:00
David Anderson 789f0b67fc - GUI RPC: parse GPU info, FLOPS from APP_VERSION records
(client already sends this info)

svn path=/trunk/boinc/; revision=22624
2010-11-04 21:32:05 +00:00
David Anderson 746f62ff1a - GUI RPC: remove unneeded isIPV6 flag, factor out sizeof() logic
svn path=/trunk/boinc/; revision=22472
2010-10-07 17:41:34 +00:00
Charlie Fenton 528d2b40cf lib: Fix problem with IPV6-compatible code on Mac
svn path=/trunk/boinc/; revision=22428
2010-09-30 07:42:32 +00:00
Charlie Fenton bbcc7cd36d lib: Temporary work-around for unknown problem with IPV6-compatible code on Mac
svn path=/trunk/boinc/; revision=22425
2010-09-29 23:27:44 +00:00
David Anderson 0d41de283a - client: revert to old network functions (gethostbyname() etc.) on Win:
- inet_ntop() etc. exist only on Vista+
		- the other functions are declared in winsock2.h.
			This breaks the Manager build, since wxwidgets includes winsock.h.
		So to hell with it.
	- windows build: manager doesn't depend on client

svn path=/trunk/boinc/; revision=22358
2010-09-15 20:33:44 +00:00
David Anderson 0f4735352a - client: a bit of IPv6 compatibility
- use "sockaddr_storage" to store network addresses
        (which may be IPv4 or IPv6)
        rather than assuming they fit in an int.
    - the entries in gui_rpc_auth.cfg may now be IPv6 addresses
        (a🅱️c:e:f:g format),
        or domain names of hosts that support only IPv6
    Note: GUI RPCs are still constrained to use IPv4,
    but this should be easy to change if it's every needed

    Also: replace deprecated gethostbyname() with getaddrinfo().

svn path=/trunk/boinc/; revision=22353
2010-09-15 17:41:25 +00:00
David Anderson 5989051b73 - lib: removed unneeded include. Fixes #1004
svn path=/trunk/boinc/; revision=22235
2010-08-14 13:48:26 +00:00
David Anderson e2299ef8bb - client/manager/GUI RPC: add optional "translatable" arg
to get_messages() RPC; if absent or false,
    client will strip _( ) from messages.

svn path=/trunk/boinc/; revision=21946
2010-07-14 21:23:17 +00:00
David Anderson f575d3ddd9 - GUI RPC: add NOTICES::complete, so caller knows whether
what's being returned is new notices or all notices.

svn path=/trunk/boinc/; revision=21843
2010-06-29 21:40:12 +00:00
David Anderson 9a54d6e144 - GUI RPC: include HOST_INFO in CC_STATE
svn path=/trunk/boinc/; revision=21569
2010-05-18 20:32:17 +00:00
David Anderson a62782c910 - manager: if a project has pending trickle up,
show it in the project status


svn path=/trunk/boinc/; revision=21416
2010-05-07 20:41:43 +00:00
Rom Walton 1039cbdbe0 - lib: update client-side RPC files for configured
download url.
    - manager: update get_newer_version async RPC for
        configured download url.

    clientgui/
        AsyncRPC.cpp, .h
    lib/
        gui_rpc_client.h
        gui_rpc_client_ops.cpp

svn path=/trunk/boinc/; revision=21386
2010-05-05 18:30:22 +00:00
David Anderson 71ecfd47a0 svn path=/trunk/boinc/; revision=21226 2010-04-21 04:00:17 +00:00
David Anderson 0fa5b4e129 - client/manager/GUI RPC: project_info.xml file can contain <team_name>.
If present, and a new user account is created,
    it will be made a member of that team if it exists.

svn path=/trunk/boinc/; revision=21030
2010-03-30 17:46:09 +00:00
David Anderson 582dcb2912 - client/manager: prefix anonymous platform apps with "Local: "
svn path=/trunk/boinc/; revision=21023
2010-03-29 22:33:08 +00:00
David Anderson 842a073bbd - client/maanager: show "No CPU prefs" etc. in project properties
svn path=/trunk/boinc/; revision=21020
2010-03-29 19:44:22 +00:00
David Anderson 3452bbbc87 - GUI RPC: more replacement of std::string
svn path=/trunk/boinc/; revision=20889
2010-03-13 04:40:37 +00:00
David Anderson 86582342a8 - GUI RPC: in the structures used in the C++ interface to GUI RPC,
change various std::string to char[n], to improve performance.

NOTE: std::string should ONLY be used in cases where there is
no a priori limit on string length.
If there's a limit (e.g. because the string originates in
a fixed-size database field) always use char[n].

svn path=/trunk/boinc/; revision=20877
2010-03-12 17:47:17 +00:00
Rom Walton 56391da25a - lib: fixup notice RPCs to make them manager compatible.
- lib: remove memset from notice constructor, bad things can happen
        when you null out a std::string structure.
        
    lib/
        gui_rpc_client.h
        gui_rpc_client_ops.cpp
        notice.cpp, .h
        

svn path=/trunk/boinc/; revision=20065
2010-01-04 17:43:18 +00:00
David Anderson 089a496409 - manager/client: show PID in task properties;
add PID to RESULT structure in GUI RPC

svn path=/trunk/boinc/; revision=20001
2009-12-21 17:25:43 +00:00
David Anderson 62156200f4 - client and GUI RPC: add some plumbing for notices
svn path=/trunk/boinc/; revision=19973
2009-12-18 21:52:08 +00:00
David Anderson 34a489c9bb - client/manager: show coprocessor short-term debts
svn path=/trunk/boinc/; revision=19898
2009-12-14 18:39:07 +00:00
David Anderson a98a0f4652 - boinccmd: fix output of --get_disk_usage
svn path=/trunk/boinc/; revision=19868
2009-12-12 05:11:50 +00:00
David Anderson 2ff21d2a21 - client/manager: finish "snooze GPU" button
svn path=/trunk/boinc/; revision=19854
2009-12-11 00:08:28 +00:00
David Anderson 5e862ac495 - client: on startup, if a coproc needed by a job is missing,
set a "coproc_missing" flag rather than aborting the job.
        If use removes a GPU board while there's a large queue of GPU jobs,
        they'll stay queued (until their deadline passes).

        Note: this doesn't fix the situation where user connects via
        Remote Desktop while GPU jobs are running or queued.
        We should check for Remote Desktop every minute or so, and stop GPU jobs.

svn path=/trunk/boinc/; revision=19287
2009-10-12 16:28:17 +00:00
David Anderson 208f53a51d - client/manager: add ATI stuff to GUI RPCs and manager display
svn path=/trunk/boinc/; revision=18853
2009-08-17 21:11:06 +00:00
David Anderson 786f61cfbe - file upload handler: don't treat zero-length file as an error!
(This bug has been there since 28 Oct 2004)
- GUI RPC and manager: include project backoff in FILE_TRANSFER,
    so that manager gets up-to-date value


svn path=/trunk/boinc/; revision=18786
2009-07-31 19:46:47 +00:00
David Anderson dfb1fdb034 - client/manager/GUI RPC: show project-level backoffs
svn path=/trunk/boinc/; revision=18603
2009-07-16 18:36:23 +00:00
David Anderson 9ec90c409e - GUI RPC: add get_message_seqno() RPC. fixes #931
svn path=/trunk/boinc/; revision=18576
2009-07-07 22:58:58 +00:00
Rom Walton 7546b0fe72 - MGR: Previous sorting method wasn't working, use a sort
function pointer instead.
        
    lib/
        gui_rpc_client.h
        gui_rpc_client_ops.cpp

svn path=/trunk/boinc/; revision=18532
2009-06-30 20:39:10 +00:00
David Anderson 46d9e8f087 - client: record the time results are received.
Process non-EDF GPU jobs in this order.


svn path=/trunk/boinc/; revision=18531
2009-06-30 20:22:54 +00:00
Rom Walton ed2df38f4e Group project list structures together.
svn path=/trunk/boinc/; revision=18530
2009-06-30 19:55:28 +00:00