Commit Graph

50 Commits

Author SHA1 Message Date
Rom Walton 20a4275937 client: Cleanup low hanging fruit with regards to cleaning up strcpy and strcat use.
Use safe_strcpy and safe_strcat when dealing with non-pointer data types.
2016-02-16 00:14:52 -05:00
Christian Beer dd6f9c3ac6 initialize fields in constructors
fixes CID 27926, 28022 found by Coverity Scan and cppcheck
2015-10-20 16:47:36 +02:00
Julien Nabet d75222ebf3 cppcheck: Prefer prefix ++/-- operators for non-primitive types 2015-01-14 21:18:29 +01:00
David Anderson 1e2fcb4b68 client/lib: change CONFIG to CC_CONFIG, config to cc_config.
Eliminates ambiguity of "config" global var, which is used in server code.
This confuses IDEs that are looking at all the code at once.
2014-05-08 00:51:18 -07:00
Joachim Fritzsch f0644ddb1b android: typo in client socket name. no functional impact. 2014-02-20 21:08:05 +01:00
Joachim Fritzsch a82cdea440 android: better handling of co-existance of multiple BOINC based apps.
- name client socket uniquely to avoid interference
- cancel notifications after closing app to make splash Activity only entry point
2014-02-20 12:23:00 +01:00
David Anderson 36460bc288 Compile fixes for Ubuntu 2014-02-06 12:17:28 -08:00
David Anderson 548c3f30d3 Android compile fix 2014-02-02 22:13:03 -08:00
David Anderson 389db3727a GUI RPC: make Unix domain work on Mac (hopefully) 2014-01-31 16:38:36 -08:00
Charlie Fenton d4aafeb91f GUI RPC: Fix Unix domain stuff for Mac OS X 2014-01-31 16:14:53 -08:00
David Anderson c326c41cb3 client: tweak 2014-01-31 14:47:25 -08:00
David Anderson 1d85d22e73 GUI RPC: disable Unix domain stuff for Mac OS X 2014-01-31 14:44:23 -08:00
Joachim Fritzsch 01f0eadf8c android: use Unix domain sockets for GUI RPCs. 2014-01-31 14:03:50 +01:00
David Anderson 7e3f9d323a Win compile fixes 2014-01-30 23:15:03 -08:00
David Anderson e22ffeb377 GUI RPC: add support for RPCs over Unix domain sockets (for Android)
- If run with --gui_rpc_unix_domain, the client will listen on
  a Unix-domain socket (named "boinc_socket") rather than on a TCP port.
- Add RPC_CLIENT::init_unix_domain() function to C++ GUI RPC interface
  (Note: we'll need to add a corresponding function to the Java interface)
- boinccmd: add --unix_domain option
2014-01-30 22:57:44 -08:00
David Anderson 7b8bc56da3 Win build fixes 2013-06-06 18:22:51 -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 9481e04e7b - client: there were many places in the code where we keep track
(usually in a static variable called "last_time")
    of the last time we did something,
    and we only do it again when now - last_time exceeds some interval.
    Example: sending heartbeat messages to apps.
    Problem: if the system clock is decreased by X,
    we won't do any of these actions are time X,
    making it appear that the client is frozen.
    Solution: when we detect that the system clock has decreased,
    set a global var "clock_change" for 1 iteration of the polling loop,
    and disable these time checks if clock_change is set.
2013-03-22 10:28:20 +01:00
David Anderson 369abbd9f8 - client: if gui_rpc_auth.cfg is empty, print a warning but don't error out;
an empty GUI RPC password is allowed.
2013-03-04 17:39:23 +01:00
David Anderson 5e434214af - client: disable remote access if
- gui_rpc_auth.cfg is empty, or
    - it doesn't exist and we can't open it for writing, or
    - the write to it fails
2013-03-04 17:24:19 +01:00
Charlie Fenton 462be89f01 Restore changes lost due to GIT confusion 2013-03-04 17:01:36 +01:00
David Anderson f8c1665722 - client: keep track of the fraction of time that
1) a network connection is available and
    2) network communication is allowed and
    3) CPU computation is allowed
- If an app version is marked as needs_network,
    use the above fraction in estimating its rate of progress
- replace "core client" with "client" in comments.
- scheduler: message tweaks


svn path=/trunk/boinc/; revision=25803
2012-06-26 20:30:56 +00:00
David Anderson 1e4f187cb5 - client: don't generate notice if lookup of host
in remote_hosts.cfg fails.

svn path=/trunk/boinc/; revision=24328
2011-10-04 17:14:17 +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 9d2d540267 - client: intermediate checkin for replicated trickle-ups.
Not finished yet.
- example app: add --trickle_up and --trickle_down options,
    for testing trickle messages


svn path=/trunk/boinc/; revision=24245
2011-09-20 18:49:38 +00:00
David Anderson 0e3d27961c - client: in handling the acct_mgr GUI RPC,
don't start the RPC directly;
    that might fail if CLIENT_STATE::gui_http is busy.
    Instead, set a timer field.
- client: structure ACCT_MGR_OP the same as other GUI_HTTP_OP variants
- client: clarify the comments on GUI_HTTP and GUI_HTTP_OP

Note: GUI_HTTP and GUI_HTTP_OP are misnomers; they refer to
any HTTP op other than scheduler requests and file transfers.
Should change the name, maybe to CLIENT_HTTP*


svn path=/trunk/boinc/; revision=24238
2011-09-19 21:15:36 +00:00
David Anderson c61103ac26 - client: make the attributes of GUI RPCs (network, authentication)
explicit rather than determined by position in a list.
- client: add a new "read-only" attribute for GUI RPCs.
    This is in preparation for handling GUI RPCs in separate threads.
- client: remove code to support pre-V6 graphics.


svn path=/trunk/boinc/; revision=24232
2011-09-18 21:06:49 +00:00
David Anderson 33713781d1 - client: distinguish between messages to be displayed as HTML
(e.g. "Download new client here" link) and others
		(e.g. "Bad tag in cc_config.xml: <foo>").
	- code cleanup; move show_message from main.cpp to client_msgs.cpp

svn path=/trunk/boinc/; revision=22548
2010-10-18 20:09:51 +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 4075a0dcf1 - client: tweak translatable msg
svn path=/trunk/boinc/; revision=22144
2010-08-05 19:11:01 +00:00
David Anderson ef044d6841 - client/manager: add the ability to associate URLs with
client-generated notices.
    Use this as appropriate: e.g., for errors about cc_config.xml syntax,
    direct user to the web page describing this syntax.

svn path=/trunk/boinc/; revision=22024
2010-07-21 19:04:46 +00:00
David Anderson fa82aaa435 - client: free GUI_RPC_CONN objects at shutdown
svn path=/trunk/boinc/; revision=21853
2010-06-30 21:59:38 +00:00
David Anderson 15047b1e4d - client: make all MSG_USER_ALERT messages (i.e., those shown as notices)
translatable (and change some MSG_USER_ALERT messages to MSG_INFO).

svn path=/trunk/boinc/; revision=21709
2010-06-08 23:37:44 +00:00
David Anderson 3c57e80035 - client: msg tweak
svn path=/trunk/boinc/; revision=21586
2010-05-19 17:16:01 +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
David Anderson 7db608660f - client: standardize debug messages.
Messages enabled by <foo_debug> are prefixed by "[foo]"


svn path=/trunk/boinc/; revision=21335
2010-04-29 20:32:51 +00:00
David Anderson 7a4edbafab - client: "allow_remote_gui_rpc" is available via cc_config.xml
as well as command-line.
- client: show allow_remote_gui_rpc option,
    and contents of remote_host.cfg, in message log on startup
- client: code cleanup: move some options from
    CLIENT_STATE to OPTIONS

svn path=/trunk/boinc/; revision=21142
2010-04-07 21:11:15 +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 87a8fb1aee - client: generalize the GUI RPC mechanism to access via HTTP.
The handler checks for POST headers,
		and if present adds a reply header.
		Also: remove the restriction that request messages
		must be read in their entirety on the first recv().

		I'm testing this using javascript's XMLHttpRequest.
		It's not completely working;
		the browser sends an OPTIONS request, then sends a POST.
		The BOINC client parses and replies to these,
		but for some reason the browser doesn't seem to be
		parsing the POST reply.

svn path=/trunk/boinc/; revision=20774
2010-03-02 22:52:22 +00:00
David Anderson 42683a8a31 svn path=/trunk/boinc/; revision=20269 2010-01-27 03:55:46 +00:00
David Anderson 735e2b0448 - internal change: rename MSG_USER_ERROR to MSG_USER_ALERT
svn path=/trunk/boinc/; revision=20027
2009-12-23 18:02:40 +00:00
David Anderson 5613634c3a - compile fixes for Linux
svn path=/trunk/boinc/; revision=18440
2009-06-16 22:17:04 +00:00
David Anderson 0b3ce504ff - Win: compile fixes
svn path=/trunk/boinc/; revision=18439
2009-06-16 21:58:38 +00:00
David Anderson d7aacaac32 - don't include config.h from network.h (Gabor Gombas)
svn path=/trunk/boinc/; revision=18428
2009-06-16 18:51:33 +00:00
David Anderson 31e7127776 - client: make timeout values into #defines
svn path=/trunk/boinc/; revision=17396
2009-02-26 03:24:39 +00:00
David Anderson 2e2eacc2f5 - client: if you put <host_venue> in global_prefs_override.xml,
it should select the venue from the network prefs.
    Now it does.


svn path=/trunk/boinc/; revision=17389
2009-02-26 00:52:50 +00:00
Eric J. Korpela 8f3abcc835 - Added checks for net/*.h, arpa/*.h, netinet/*.h and code to figure out
which of those files to include
    - Modified MAC address check to work on some non-Linux unixes.
      (mac_address.cpp)
    - Added suggested change to "already attached to project" checking.
      (ProjectInfoPage.cpp)
    - changed includes of standard c header files to their c++ equivalents
      (i.e. replaced <stdio.h> with <cstdio>) for namespace protection.
    - replaced "using namespace std;" with more explicit "using std::function" in
      several files.
    - Fixed bug in checking whether the os is OS/2 and added conditional OS_OS2
      to the build environment. (boinc_platform.m4,configure.ac)
    - Changed build environment to not use -nostandardlibs unless we are using
      G++ and static linkage is specified. (configure.ac)
    - Added makefiles and package building files for solaris CSW package manager.
    - Fixed bug with attempting to find login name using logname. (configure.ac)
    - Added ifdef HAVE_* protection around some include files commonly found in
      sys.
    - Added support for unified binary for x86_64/i686-pc-solaris.
      (cs_platforms.cpp)
    - generate_host_cpid() now uses MAC address on non-linux unix.
      (hostinfo_network.cpp)
    - Macro BOINC_SET_COMPILE_FLAGS now doesn't check gcc only flags on non-gcc
      compilers. (boinc_set_compile_flags.m4)
    - Library compiles no longer depend upon the library extension or require
      the library to be prefixed with lib.
    - More fixes for fcgi builds.
    - Added declaration of "struct ether_addr" and ether_ntoa().  Have not yet
      implemented ether_ntoa() for machines that don't have it, or where it is
      buggy.  (unix_util.h)
    - Added FCGI::perror() which calls FCGI_perror(). (boinc_fcgi.{h,cpp})
    - Fixed library Makefiles so that all required headers get installed.


svn path=/trunk/boinc/; revision=17388
2009-02-26 00:23:23 +00:00
David Anderson 9967112f60 - client: if bind fails, print port#
- web: don't randomize order of profiles
    (fixes checkin of 28 Oct)

svn path=/trunk/boinc/; revision=16520
2008-11-18 17:33:13 +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