summaryrefslogtreecommitdiff
path: root/indra/llcommon/llprocess.cpp
diff options
context:
space:
mode:
authorJonathan "Geenz" Goodman <geenz@lindenlab.com>2026-09-22 17:35:03 -0400
committerGitHub <noreply@github.com>2026-09-22 17:35:03 -0400
commitf3fba78d9185a2385cc6c5226b7a87fddff826dd (patch)
tree4d04ad5876c69ec0b3203dec69c711161fa7f934 /indra/llcommon/llprocess.cpp
parentcc5d3dd3cd653971fff16cf2bc1d380edd5ea7f2 (diff)
parent125dfba5f94191fc99d1c511d190d6a9f2d9d2f1 (diff)
Merge pull request #6357 from secondlife/pepper/chat-merge-26.5
Merge `release/26.5` into `project/chat-modernization`
Diffstat (limited to 'indra/llcommon/llprocess.cpp')
-rw-r--r--indra/llcommon/llprocess.cpp24
1 files changed, 23 insertions, 1 deletions
diff --git a/indra/llcommon/llprocess.cpp b/indra/llcommon/llprocess.cpp
index a71589a2bf..86e1f48377 100644
--- a/indra/llcommon/llprocess.cpp
+++ b/indra/llcommon/llprocess.cpp
@@ -701,8 +701,25 @@ void LLProcess::launch(const LLSDOrParams& params)
else
stdio.err = nullptr; // inherit
- // Build executable path
+ // Build executable path.
+ // Resolve bare executable names (i.e. "outleap-agent") through the
+ // environment's PATH
boost::filesystem::path executable_path(params.executable());
+ if (!executable_path.has_parent_path())
+ {
+ boost::filesystem::path resolved =
+ bp::environment::find_executable(executable_path);
+ if (!resolved.empty())
+ {
+ executable_path = resolved;
+ }
+ else
+ {
+ LL_WARNS("LLProcess") << "Could not locate '" << params.executable()
+ << "' on PATH -- launch will likely fail" << LL_ENDL;
+ // Let bp::process try to produce an error.
+ }
+ }
// In Boost.Process v2, error_code cannot be passed as an initializer.
// Use the throwing overload and catch the exception instead.
@@ -1092,6 +1109,11 @@ bool LLProcess::kill(const LLProcessPtr& ptr, const std::string& who)
return !ptr || ptr->kill(who);
}
+void LLProcess::pump()
+{
+ tick();
+}
+
LLProcess::id LLProcess::getProcessID() const
{
if (!mChild)