svn merge -r 84911:86069 svn+ssh://svn.lindenlab.com/svn/linden/branches/Branch_1-21-Server --> release

Backport fixes made in the production branch to the trunk now that it is live on the grid:
* DEV-14443 Launcher not producing colo prefix when looking up sim class
* DEV-10840 "/etc/init.d/backbone stop" returns before all child backbones exited; "backbone restart" results in defunct children
* DEV-12558: Able to make anyone's object shout error messages
* QAR-483 user start location migration prelude
* QAR-490 havok4-6
* Revert havok4-5/4-6 code changes causing parcel access check issues
* Revert QAR-277 sqlite-backbone
* DEV-12357 SEC-53: Script that crashes regions
* QAR-486 New proc and query for Web Classifieds Fix
master
Josh Bell 2008-04-28 19:40:54 +00:00
parent b580951a9e
commit a089a401ee
8 changed files with 48 additions and 16 deletions

View File

@ -425,15 +425,6 @@
<boolean>true</boolean>
</map>
<!-- Server to dataserver and client -->
<key>SimStats</key>
<map>
<key>flavor</key>
<string>llsd</string>
<key>trusted-sender</key>
<boolean>true</boolean>
</map>
<!-- UDPDeprecated Messages -->
<key>ScriptRunningReply</key>
<map>

View File

@ -842,6 +842,16 @@ try:
except:
print "Couldn't import mulib.stacked, not registering LLSD converters"
else:
def llsd_convert_json(llsd_stuff, request):
callback = request.get_header('callback')
if callback is not None:
## See Yahoo's ajax documentation for information about using this
## callback style of programming
## http://developer.yahoo.com/common/json.html#callbackparam
req.write("%s(%s)" % (callback, simplejson.dumps(llsd_stuff)))
else:
req.write(simplejson.dumps(llsd_stuff))
def llsd_convert_xml(llsd_stuff, request):
request.write(format_xml(llsd_stuff))
@ -849,6 +859,8 @@ else:
request.write(format_binary(llsd_stuff))
for typ in [LLSD, dict, list, tuple, str, int, float, bool, unicode, type(None)]:
stacked.add_producer(typ, llsd_convert_json, 'application/json')
stacked.add_producer(typ, llsd_convert_xml, 'application/llsd+xml')
stacked.add_producer(typ, llsd_convert_xml, 'application/xml')
stacked.add_producer(typ, llsd_convert_xml, 'text/xml')

View File

@ -101,4 +101,16 @@ BOOL compare_llsd_with_template(
const LLSD& template_llsd,
LLSD& resultant_llsd);
// Simple function to copy data out of input & output iterators if
// there is no need for casting.
template<typename Input> LLSD llsd_copy_array(Input iter, Input end)
{
LLSD dest;
for (; iter != end; ++iter)
{
dest.append(*iter);
}
return dest;
}
#endif // LL_LLSDUTIL_H

View File

@ -34,8 +34,8 @@
const S32 LL_VERSION_MAJOR = 1;
const S32 LL_VERSION_MINOR = 21;
const S32 LL_VERSION_PATCH = 0;
const S32 LL_VERSION_BUILD = 84509;
const S32 LL_VERSION_PATCH = 1;
const S32 LL_VERSION_BUILD = 85989;
const char * const LL_CHANNEL = "Second Life Server";

View File

@ -3910,9 +3910,11 @@ BOOL LLVolumeParams::isConvex() const
F32 path_length = mPathParams.getEnd() - mPathParams.getBegin();
F32 hollow = mProfileParams.getHollow();
U8 path_type = mPathParams.getCurveType();
if ( path_length > MIN_CONCAVE_PATH_WEDGE
&& ( mPathParams.getTwist() != mPathParams.getTwistBegin()
|| hollow > 0.f ) )
|| (hollow > 0.f
&& LL_PCODE_PATH_LINE != path_type) ) )
{
// twist along a "not too short" path is concave
return FALSE;
@ -3942,7 +3944,6 @@ BOOL LLVolumeParams::isConvex() const
return FALSE;
}
U8 path_type = mPathParams.getCurveType();
if ( LL_PCODE_PATH_LINE == path_type )
{
// straight paths with convex profile

View File

@ -77,7 +77,12 @@ public:
static void postFile(const std::string& url, const LLUUID& uuid,
LLAssetType::EType asset_type, ResponderPtr responder, const F32 timeout=HTTP_REQUEST_EXPIRY_SECS);
// Blocking HTTP get that returns an LLSD map of status and body.
/**
* @brief Blocking HTTP get that returns an LLSD map of status and body.
*
* @param url the complete serialized (and escaped) url to get
* @return An LLSD of { 'status':status, 'body':payload }
*/
static LLSD blockingGet(const std::string& url);
static void del(const std::string& url, ResponderPtr, const F32 timeout=HTTP_REQUEST_EXPIRY_SECS);

View File

@ -3027,7 +3027,14 @@ BOOL run_return(U8 *buffer, S32 &offset, BOOL b_print, const LLUUID &id)
if (b_print)
printf("[0x%X]\tRETURN\n", offset);
offset++;
S32 bp = lscript_pop_int(buffer);
// SEC-53: babbage: broken instructions may allow inbalanced pushes and
// pops which can cause caller BP and return IP to be corrupted, so restore
// SP from BP before popping caller BP and IP.
S32 bp = get_register(buffer, LREG_BP);
set_sp(buffer, bp);
bp = lscript_pop_int(buffer);
set_bp(buffer, bp);
offset = lscript_pop_int(buffer);
return FALSE;

View File

@ -2853,7 +2853,7 @@ version 2.0
// Simulator statistics packet (goes out to viewer and dataserver/spaceserver)
{
SimStats Low 140 Trusted Unencoded UDPDeprecated
SimStats Low 140 Trusted Unencoded
{
Region Single
{ RegionX U32 }
@ -2866,6 +2866,10 @@ version 2.0
{ StatID U32 }
{ StatValue F32 }
}
{
PidStat Single
{ PID S32 }
}
}
// viewer -> sim