Commit Graph

22 Commits (e6f53dedb704c92af45ede2d97c559cb6639358f)

Author SHA1 Message Date
Nat Goodspeed 5e9d2f57c8 MAINT-5011: Use LLTHROW() instead of plain BOOST_THROW_EXCEPTION().
A level of preprocessor indirection lets us later change the implementation if
desired.
2016-08-17 11:36:24 -04:00
Nat Goodspeed 9c49a6c91d MAINT-5011: Introduce LLException base class for viewer exceptions.
This also introduces LLContinueError for exceptions which should interrupt
some part of viewer processing (e.g. the current coroutine) but should attempt
to let the viewer session proceed.

Derive all existing viewer exception classes from LLException rather than from
std::runtime_error or std::logic_error.

Use BOOST_THROW_EXCEPTION() rather than plain 'throw' to enrich the thrown
exception with source file, line number and containing function.
2016-07-19 16:25:25 -04:00
Nat Goodspeed b031b1a625 MAINT-5011: Derive remaining exception classes from std::exception.
In particular:
NotImplemented in llhttpnode.cpp
RelocateError in llupdateinstaller.cpp
LLProtectedDataException, LLCertException and subclasses in llsecapi.h

Had to add no-throw destructor overrides to LLCertException and subclasses
because otherwise clang complains that the implicitly-generated destructor's
exception specification is more lax than the base class's.
2016-07-13 10:43:36 -04:00
Oz Linden c8726aba30 remove execute permission from many files that should not have it 2015-11-10 09:48:56 -05:00
Oz Linden 3bb708d706 merge up to latest viewer-development for merge to 3.5.2 2013-04-19 14:42:56 -04:00
Graham Madarasz bf6182daa8 Update Mac and Windows breakpad builds to latest 2013-03-29 07:50:08 -07:00
Oz Linden cf1019859d add use of v1.1 update request protocol, with fallback to v1.0 2013-02-21 16:47:52 -05:00
Nat Goodspeed 47d9475707 Convert LLProcess consumers from LLSD to LLProcess::Params block.
Using a Params block gives compile-time checking against attribute typos. One
might inadvertently set myLLSD["autofill"] = false and only discover it when
things behave strangely at runtime; but trying to set myParams.autofill will
produce a compile error.
However, it's excellent that the same LLProcess::create() method can accept
either LLProcess::Params or a properly-constructed LLSD block.
2012-01-21 11:45:15 -05:00
Nat Goodspeed f0dbb87833 Per Richard, replace LLProcessLauncher with LLProcess.
LLProcessLauncher had the somewhat fuzzy mandate of (1) accumulating
parameters with which to launch a child process and (2) sometimes tracking the
lifespan of the ensuing child process. But a valid LLProcessLauncher object
might or might not have ever been associated with an actual child process.
LLProcess specifically tracks a child process. In effect, it's a fairly thin
wrapper around a process HANDLE (on Windows) or pid_t (elsewhere), with
lifespan management thrown in. A static LLProcess::create() method launches a
new child; create() accepts an LLSD bundle with child parameters. So building
up a parameter bundle is deferred to LLSD rather than conflated with the
process management object.
Reconcile all known LLProcessLauncher consumers in the viewer code base,
notably the class unit tests.
2012-01-20 18:10:40 -05:00
Nat Goodspeed c0731c1c05 Add log message if LLProcessLauncher child fails to execv().
On a Posix platform (vfork()/execv() implementation), if for any reason the
execv() failed (e.g. executable not on PATH), the viewer would never know, nor
the user: the vfork() child produced no output, and terminated with rc 0! Add
logging, make child terminate with nonzero rc.
Remove pointless addArgument(const char*) overload: this does nothing for you
that the compiler won't do implicitly.
In llupdateinstaller.cpp, remove pointless c_str() call in addArgument() arg:
we were starting with a std::string, then extracting its c_str(), only to
construct a whole new std::string from it!
2012-01-17 18:55:42 -05:00
Loren Shih 5f99331f4a Automated merge up from viewer-development 2010-12-29 13:23:02 -05:00
Andrew A. de Laix 2c68cb2c69 fix windows build? 2010-12-20 10:38:36 -08:00
Andrew A. de Laix 67a543aa6c ich bin stupid; this should actually fix the windows build. 2010-12-17 12:07:09 -08:00
Andrew A. de Laix 049815bd52 and don't break other builds. 2010-12-17 10:55:09 -08:00
Andrew A. de Laix b707048fdf fix windows build (suppress warning from lexical_cast) 2010-12-17 10:53:02 -08:00
Andrew A. de Laix 1774489ef8 Vary install failed message depending on whether it was required or not. 2010-12-16 09:34:19 -08:00
Loren Shih bfd8efb057 Automated merge up from viewer-development 2010-12-01 10:55:24 -05:00
Andrew A. de Laix ec7d36f6cf added mechanism for install scripts to indicate a failed install and for update service to note the failure; modified mac installer to write marker on error. 2010-11-15 09:38:20 -08:00
Andrew A. de Laix 6e15957d90 run install script on successful download 2010-11-11 09:40:30 -08:00
Andrew A. de Laix 41ec2e01dd copy script to temp if needed before installing. 2010-11-10 14:30:11 -08:00
brad kittenbrink 3493da8c41 Fix for linux eol failures. 2010-11-09 17:42:05 -08:00
Andrew A. de Laix fdf616c59d beginnings of the update installer (with simple install script for darwin). 2010-11-09 11:23:32 -08:00