Commit Graph

22554 Commits (cfe37cbfb5bdec0aa01c86a608ecc6cdc3df8a2a)

Author SHA1 Message Date
Nat Goodspeed 32e11494ff Use os.path.normcase(os.path.normpath()) when comparing directories.
Once again we've been bitten by comparison failure between "c:\somepath" and
"C:\somepath". Normalize paths in both Python helper scripts to make that
comparison more robust.
2012-02-07 12:28:57 -05:00
Nat Goodspeed 5d2bb53632 On Linux, #undef Status: we use that name for nested LLProcess struct.
Apparently something in the Linux system header chain #defines a macro Status
as 'int'. That's just Bad in C++ land. It should at the very least be a
typedef! #undefining it in llprocess.h permits the viewer to build.
2012-02-07 12:06:03 -05:00
Nat Goodspeed 219a010aaf LLProcess::Status enum values need qualification in helper function. 2012-02-07 11:17:04 -05:00
Nat Goodspeed aafb03b29f Convert LLProcess implementation from platform-specific to using APR.
Include logic to engage Linden apr_procattr_autokill_set() extension: on
Windows, magic CreateProcess() flag must be pushed down into apr_proc_create()
level. When using an APR package without that extension, present
implementation should lock (e.g.) SLVoice.exe lifespan to viewer's on Windows
XP but probably won't on Windows 7: need magic flag on CreateProcess().
Using APR child-termination callback requires us to define state (e.g.
LLProcess::RUNNING). Take the opportunity to present Status, capturing state
and (if terminated) rc or signal number; but since most of the time all caller
really wants is to log the outcome, also present status string, encapsulating
logic to examine state and describe exited-with-rc vs. killed-by-signal.
New Status logic may report clearer results in the case of a Windows child
process killed by exception.
Clarify that static LLProcess::isRunning(handle) overload is only for use when
the original LLProcess object has been destroyed: really only for unit tests.
We necessarily retain our original platform-specific implementations for just
that one method. (Nonstatic isRunning() no longer calls static method.)
Clarify log output from llprocess_test.cpp in a couple places.
2012-02-07 10:53:23 -05:00
Nat Goodspeed d99acd56cd ManageAPR should be noncopyable. Make that explicit.
Any RAII class should either be noncopyable or should deal appropriately with
a copy operation. ManageAPR is intended only for extremely simple cases, and
hence should be noncopyable.
2012-02-06 17:06:55 -05:00
Oz Linden 289d756ea8 increment viewer version to 3.3.0 2012-02-06 10:01:09 -05:00
Oz Linden 54bc900c95 Added tag 3.2.9-start for changeset 37dd400ad721 2012-02-06 10:00:15 -05:00
Oz Linden 099ce3cbde merge changes for vmrg-222 2012-02-03 18:35:46 -05:00
Richard Linden a89fbc1d33 EXP-1868 FIX Remove Merchant Outbox from Me menu
removed merchant outbox context menu
reviewed by Leslie
2012-02-03 11:14:54 -08:00
Richard Linden 028d9b3b34 EXP-1868 FIX Remove Merchant Outbox from Me menu
reviewed by Leslie
2012-02-03 10:45:14 -08:00
Nat Goodspeed f65028e38e Automated merge with file:///Users/nat/linden/viewer-tut-fix 2012-02-03 13:11:04 -05:00
Nat Goodspeed 90ba675da4 Escape all strings embedded in TeamCity service messages.
TeamCity requires that certain characters (notably "'") must be escaped when
embedded in service messages:
http://confluence.jetbrains.net/display/TCD65/Build+Script+Interaction+with+TeamCity#BuildScriptInteractionwithTeamCity-ServiceMessages
TUT frequently outputs messages containing "'", e.g. from ensure_equals()
failure. We've seen TC output nesting get confused when it fails to process
service messages properly due to parsing unescaped messages.
Along with test<n> number, report test name (from set_test_name()) when
available.
Eliminate horsing around to produce normal output on both std::cout and
possible output file. When output file is specified, use
boost::iostreams::tee_device to do fanout for us.
Improve placement (and possibly reliability) of service messages.
Clean up a startling amount of redundancy in service-message production.
2012-02-03 13:09:20 -05:00
Vadim ProductEngine 36aba26615 EXP-1843 WIP Added an option to output avatar rez timing.
Use the new "Avatar Rez" debugging tag to see the output.
2012-02-03 11:10:13 +02:00
Brad Payne (Vir Linden) 34408bed26 merge 2012-02-01 15:43:11 -05:00
Nat Goodspeed 491cd82556 Set bit flag on CreateProcess() to allow AssignProcessToJobObject().
Windows 7 and friends tend to create a process already implicitly allocated to
a job object, and a process can only belong to a single job object. Passing
CREATE_BREAKAWAY_FROM_JOB in CreateProcessA()'s dwCreationFlags seems to
bypass the access-denied error observed with AssignProcessToJobObject()
otherwise.
This change should (!) enable OS lifespan management for SLVoice.exe et al.
2012-01-30 17:47:57 -05:00
Oz Linden 0e609cc95b increment viewer version to 3.2.9 2012-01-30 16:45:50 -05:00
Oz Linden bd4c629e38 Added tag 3.2.8-start for changeset 89980333c99d 2012-01-30 16:44:58 -05:00
Oz Linden 1ed8faee81 merge changes for vmrg-219 2012-01-30 15:48:44 -05:00
Nat Goodspeed 60a777d2e3 LLProcess::handle must be qualified when used in LLJob class. 2012-01-30 12:32:05 -05:00
Nat Goodspeed 85581eefa6 Expose 'handle' as well as 'id' on LLProcess objects.
On Posix, these and the corresponding getProcessID()/getProcessHandle()
accessors produce the same pid_t value; but on Windows, it's useful to
distinguish an int-like 'id' useful to human log readers versus an opaque
'handle' for passing to platform-specific API functions. So make the
distinction in a platform-independent way.
2012-01-30 12:11:44 -05:00
Nat Goodspeed 803acbc5ef Trim trailing "\r\n" from Windows FormatMessage() string for logging. 2012-01-30 10:14:10 -05:00
Nat Goodspeed 27df0a8456 On Windows, only quote LLProcess arguments if they seem to need it.
On Posix platforms, the OS argument mechanism makes quoting/reparsing
unnecessary anyway, so this only affects Windows.
Add optional 'triggers' parameter to LLStringUtils::quote() (default: space
and double-quote). Only if the passed string contains a character in
'triggers' will it be double-quoted.
This is observed to fix a Windows-specific problem in which plugin child
process would fail to start because it wasn't expecting a quoted number.
Use LLStringUtils::quote() more consistently in LLProcess implementation for
logging.
2012-01-27 23:46:00 -05:00
Xiaohong Bao 717a6f3306 Introduce two new parameters "CurlUseMultipleThreads" and "CurlRequestTimeOut" for QA to test Curl. 2012-01-25 18:27:40 -07:00
Xiaohong Bao cc3f90a888 Automated merge with https://bitbucket.org/VirLinden/vir-project-3 2012-01-25 16:30:02 -07:00
Xiaohong Bao 1316f33130 fix for SH-2904: textures remain stuck in HTP state 2012-01-25 16:01:56 -07:00
Dave Parks 63398cd531 SH-2791 Use request class constructor/destructor for keeping track of concurrent requests instead of unreliable increments/decrements sprinkled around the code. 2012-01-24 17:37:20 -06:00
Brad Payne (Vir Linden) 9bbaf3ab14 merge 2012-01-30 10:23:06 -05:00
Oz Linden 4ef9277761 merge changes for vmrg-218 2012-01-24 16:22:23 -05:00
Oz Linden b2f77bee7e merge changes for vmrg-217 2012-01-24 16:21:34 -05:00
Brad Payne (Vir Linden) a2544b18e8 merge 2012-01-24 14:51:47 -05:00
Dave Parks 371534167e merge 2012-01-24 12:59:40 -06:00
Dave Parks e02f007d20 SH-1427 Fix for spot lights not working properly on alpha objects, and fix for alpha lighting of point lights not matching deferred lights. 2012-01-24 12:59:18 -06:00
Brad Payne (Vir Linden) 361efbc07e merge 2012-01-24 11:03:22 -05:00
Leslie Linden ea6cbc7b6b Reverting background fetch on an item to the old fetFromServer call to fix regression bug in inventory late loading 2012-01-23 15:55:36 -08:00
Leslie Linden 83ca425158 Reverting rev 22217 changes to background fetch so search and recent will fully fetch user inventory 2012-01-23 15:34:01 -08:00
Nat Goodspeed 61e98256df Clarify that items in LLProcess::Params::args are implicitly quoted.
That is, we try to pass through each args entry as a separate child-process
arvg[] entry, whitespace and all.
2012-01-23 17:38:06 -05:00
Nat Goodspeed da5d243c8f LLStringUtil methods are conventionally static. 2012-01-23 17:29:42 -05:00
Nat Goodspeed 199e875210 Use LLProcess::Params::args::empty() instead of comparing iterators. 2012-01-23 17:04:18 -05:00
Leslie Linden ca9f000289 * Optimization to not waste some time doing std::string assignment all over the graphics code.
Reviewed by davep.
2012-01-23 13:40:20 -08:00
Nat Goodspeed 507e136f9a Per Richard: close unusable Job Object; move quote() to LLStringUtil.
If LLProcess can't set the right flag on a Windows Job Object, the object
isn't useful to us, so we might as well discard it.
quote() is sufficiently general that it belongs in LLStringUtil instead of
buried as a static helper function in llprocess.cpp.
2012-01-23 16:24:33 -05:00
Leslie Linden e2d4309ba5 EXP-1799 FIX -- Replace and Add to Outfit options and Copy to Merchant Outbox options can appear in invalid state when a valid folder is last selection
EXP-1834 FIX -- Right click context menus on Folders in Merchant Outbox and Library folders can show all inventory options including admin options
EXP-1835 FIX -- Right clicking on a folder and selecting New Folder creates folder under My Inventory not within selected folder

* Updated folder context menu building to build full options in one step or
  trigger a load which will rebuild top-level context menu for all selected
  items when complete.  Previous code had an implicit assumption that the
  selected folder was the only selection after background fetch.
2012-01-23 11:45:47 -08:00
Oz Linden e377182c04 merge changes for storm-1799 2012-01-23 14:17:21 -05:00
Oz Linden 04452c96e1 merge changes for storm-1798 2012-01-23 14:16:29 -05:00
Oz Linden f93126e1ea merge changes for storm-1796 2012-01-23 14:15:55 -05:00
Oz Linden 37e04247d9 merge changes for storm-1788 2012-01-23 14:14:57 -05:00
Oz Linden 79f1cd0a73 merge back changes from viewer-beta branch 2012-01-23 14:10:01 -05:00
Oz Linden c3fa42e26c merge back tags from pre-release branch 2012-01-23 14:09:15 -05:00
Oz Linden b25ba94f05 merge back tags from release branch 2012-01-23 14:06:56 -05:00
Nat Goodspeed 738483e630 Every singleton needs a friend... 2012-01-22 13:05:34 -05:00
Nat Goodspeed 323c0ef64e Use LLProcess::create() to launch SLVoice, rather than inline code.
This appears to close a long-pending action item, as it seems the original
LLProcessLauncher implementation was in fact cloned-and-edited from this logic
in LLVivoxVoiceClient::stateMachine().
In any case, leveraging LLProcess buys us:
- reduced redundancy; fewer maintenance points
- logging for both success and errors
- (possibly) better SLVoice.exe lifespan management.
2012-01-22 12:06:26 -05:00