[opensource-dev] Debugging purging a single folder from trash

Ricky kf6kjg at gmail.com
Mon Oct 5 13:56:34 PDT 2015


Henri, thank you for the detailed response. I suspected the protocol was
defined that way: attempting to make the viewer responsible for managing
the server's database.  Bad design, but typical of early LL when everything
was a single project and there was no separation between the client and
server codebases.  (Statement not intended to start an anti-LL flame, let's
keep on topic! :) )

That explains the information I was getting: a single RemoveInventoryFolder
for purging a single empty folder, and a mix of RemoveInventoryFolder
and PurgeInventoryDescendents
for purging a hierarchy.  I was originally expecting a single
PurgeInventoryFolder
for purging a single folder no matter whether it had children or not, and a
single PurgeInventoryDescendents upon emptying the trash.  That would have
been clean and simple, the serverside doing all the dirty work of cleaning
up the hierarchy.

Now I know what to expect, I can make sure to handle it.

Anyway, thanks again!
Ricky
Cron Stardust

On Mon, Oct 5, 2015 at 1:40 AM, Henri Beauchamp <sldev at free.fr> wrote:

> On Sun, 4 Oct 2015 21:50:39 -0700, Ricky wrote:
>
> > Just a quickie, trying to avoid digging through the viewer code myself to
> > be sure:
> > When a folder that is in the trash is purged, what calls to the server
> does
> > the client make?
> >
> > I'm debugging an OpenSim derivative,
>
> I don't know what you are trying to debug, but just in case, be aware
> that at least one such "derivatives", in use on OSGrid, does not obey
> the purge trash messages sent by the viewer (it looks like the trash
> gets emptied, but on relog, the purged items will reappear in it):
> it's totally weird and IMO a pure non-sense but in OSGrid, if you want
> to purge your trash, you must login into their web site and purge it
> from there...
> I myself lost quite some time (GRRRR !) trying to figure out why I
> couldn't purge my trash (and searched pointlessly for a bug in my
> viewer), till I found out this totally quirky (and unique: I didn't
> encounter it on any other grid) "feature" of OSGrid.
>
> > and just noticed that it seems that
> > there's a difference in the calls when the folder being purged has
> children
> > and when it doesn't.  Trying to confirm that there is an actual
> difference
> > or if something else in this complex system is interacting...
>
> The relevant call in the viewer code is remove_inventory_category()
> (in llviewerinventory.cpp).
> When connected to a non-AISv3 (which is the case for OpenSIM), it
> either sends to the server a single RemoveInventoryFolder UDP message
> when the folder is empty or, for each child folder (recursively, via
> the destructor of the LLRemoveCategoryOnDestroy class), a
> PurgeInventoryDescendents UDP message (via purge_descendents_of())
> followed with a RemoveInventoryFolder UDP message; the process is
> recursively repeated till the purged inventory folder is empty (at
> which point a last RemoveInventoryFolder message is sent for the
> purged parent folder).
>
> Henri.
> _______________________________________________
> Policies and (un)subscribe information available here:
> http://wiki.secondlife.com/wiki/OpenSource-Dev
> Please read the policies before posting to keep unmoderated posting
> privileges
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.secondlife.com/pipermail/opensource-dev/attachments/20151005/d7236d93/attachment.htm 


More information about the opensource-dev mailing list