Commit Graph

312 Commits (bd008a170898e69beeb8bc0481b4bfd94de86c55)

Author SHA1 Message Date
Merov Linden 6877144915 DD-384, DD-388 : Do not trust cached values for stock folders, do not consider a non fetched stock folder empty 2015-04-09 16:47:46 -07:00
Merov Linden 32e5d99c9d DD-291 : Use a heavier but more resilient test for listing updates 2015-04-02 21:40:22 -07:00
Merov Linden 0118a862fb DD-291 : Fix code path on category update in the SLM update case 2015-04-01 21:54:07 -07:00
Merov Linden 84b3899af2 DD-291 : Trigger a GET /listing when receiving a category update 2015-03-28 14:32:50 -07:00
Merov Linden 4ea33a3b3c Pull merge from lindenlanb/viewer-release 2014-11-11 11:40:19 -08:00
Monty Brandenberg f9c73f089a BUG-7454 Viewer crashes while logging with a turned off "HTTP Inventory"
The HttpRequest objects used in inventory ops are created lazily
when needed.  The update() operation didn't protect against their
not being created.  Added some guard tests around the update()
operations and we're good.
2014-10-06 05:44:54 +00:00
Monty Brandenberg 329608d246 Tuning and documentation. Use a fast poll frequency (0.05S)
on the HTTP requests for inventory.  We'll benchmark with that
and see how it goes.  Document some of the history of the
background fetcher for future devs.  Suggest some future
projects to make things faster.  Pointers on using LLSD with
the llcorehttp library in the readme.  And restructured
the LLSD onCompleted() processing phases using do{}while(false)
which produced a code flow that is fairly attractive.
2014-09-22 18:49:45 -04:00
Monty Brandenberg 11036d7bf4 Cleanup work. Use http constants for content-type and
accept headers in mesh and textures.  For texture metrics
reporting, use the AP_INVENTORY policy class which is
non-pipelined and pointing (usually) in the right direction.
Use a do-while(false) structure to manage common exit path
code in onCompleted() methods.  Identical to a 'goto' but
might amuse the pedantic.  Tuning on background fetch to
have it cycle faster.  This is experimental.  I suspect
with HTTP balancing in llcorehttp, we can do away with the
timers here.
2014-09-19 19:43:25 -04:00
Monty Brandenberg f71c6c745b Cleanup pass. Documentation. Get older llcorehttp-using
code to use utils for any LLSD interfaces.
2014-09-09 15:36:35 -04:00
Monty Brandenberg bbf9de9c67 Bring better error handling to inventory item and folder fetching.
First, introduced some LLSD-based interfaces to the llcorehttp code
using utils classes (in llcorehttputil).  I've kept LLSD out of
the llcorehttp library up to now and will continue to do that.
Functions provide a requestPost based on LLSD body and conversion
utils for HttpResponse-to-LLSD and HttpResponse-to-string
conversions.  Inventory fetch operations now do more thorough
error checking including 200-with-error status checking.  Still
do retry forever on folders though I don't like that.
2014-08-26 18:33:14 -04:00
Monty Brandenberg 85cba58ad4 Add an HTTP policy class for inventory operations using four (4)
connections.  Convert background and foreground fetches, both
items and folders/inventory and library, to use new HTTP.
Non-fetch inventory operations continue to use LLHTTPClient
(at least for now).  Error handling and retry on fetches wasn't
100% previously and that's still the case.  I'll rip through
this again to clean that up.  Cleaned up logging in much of
the inventory code with consistent labels on logging events
and correct macros (removed deprecation warnings).

This started as an attempt to get libcurl to do pipelining
on POSTs and PUTs.  Discovered that this is going to be
very difficult to support in general in libcurl.  May
look at that again in the future.
2014-08-22 18:04:27 -04:00
Merov Linden 252ad06b7b DD-84 : Final clean up for this fix 2014-06-04 09:58:11 -07:00
Merov Linden 86d75052f6 DD-84 : Fix all active listing modification actions. Add specific message when listing will unlist. Make update skip consistency check when called from internal level (not public API). 2014-06-03 19:46:33 -07:00
Merov Linden c780f730fe DD-92 : pull merge lindenlab/sunshine-external to get AISv3 work 2014-05-30 15:29:27 -07:00
Merov Linden 68b62747ed Pull merge from lindenlab/viewer-release 2014-05-30 14:19:53 -07:00
Merov Linden 23acc30e27 DD-102 : Fix crash when emptying trash containing nested folders. Also avoid getting listings several times 2014-05-16 17:12:22 -07:00
Brad Payne (Vir Linden) 01ad22ce19 fix for bad merge 2014-05-15 12:53:09 -04:00
Brad Payne (Vir Linden) 487ca1bad3 v-r -> s-e merge WIP 2014-05-14 17:50:59 -04:00
Brad Payne (Vir Linden) 7b9708a2e3 sunshine-external merge WIP 2014-05-13 10:02:26 -04:00
Merov Linden 8719299059 DD-81 : Fixed the stock folder count update using an inventory observer. This observe other changes as well of interest to marketplace and should improve consistency in general 2014-05-01 17:36:17 -07:00
Xiaohong Bao ae564140c0 Merge 2014-04-22 12:19:28 -06:00
Brad Payne (Vir Linden) d0eb9658f2 merge 2014-04-22 11:19:58 -04:00
Merov Linden fc4e9d2572 DD-18 : Compute stock for all levels, get folders to update more consistently on all actions in the marketplace 2014-04-08 18:12:48 -07:00
Merov Linden 39659f3c03 DD-20 : Handle edge cases a bit more cleanly 2014-04-03 15:17:31 -07:00
Merov Linden a98346b0c3 DD-20 : WIP : Improve Cut and Paste for marketplace. Still some use cases that are not working well 2014-04-02 18:06:22 -07:00
Merov Linden f66de28a7c DD-20 : WIP : Implemented the cut and paste code for marketplace. Stock update still not working as expected. 2014-04-01 21:41:18 -07:00
Merov Linden 69fb50322e DD-18 : WIP : Making stock folders update work better 2014-03-31 20:24:41 -07:00
Merov Linden 0ec8fbec6d DD-24 : Add FT_MARKETPLACE_STOCK as a new type for folders, implement the promotion code for Drag and Drop, display of stock folders and embryonic marketplace validation 2014-03-28 15:54:36 -07:00
Brad Payne (Vir Linden) f6947e9ce5 SH-4664 WIP - updated from from UpdateCreateInventoryItem to inventory observers. 2013-12-19 15:39:21 -05:00
Brad Payne (Vir Linden) 1320e5ddcd SH-4640 WIP - use backlinks in inventory 2013-12-03 16:35:07 -05:00
Brad Payne (Vir Linden) 940cde3938 SH-4640 WIP 2013-12-03 11:49:29 -05:00
Merov Linden 1cee31191c MAINT-3319 : Fix the purge of descendents of a category. Note: the cached number of descendents is not always reliable 2013-11-26 16:33:45 -08:00
Brad Payne (Vir Linden) c0d780cb44 SH-4613 WIP - add CREATE mask bit for newly created items in AISUpdate::doUpdate() - needed for some inventory observers. 2013-11-25 16:52:58 -05:00
Merov Linden 8af432481d ACME-3319 : Consolidate Merchant Outboxes when several are present into one in the right place 2013-11-19 16:15:00 -08:00
Merov Linden 125f3f071a MAINT-3319 : WIP : Introduce a consolidate folder method used for Merchant Outbox 2013-11-18 16:03:22 -08:00
Brad Payne (Vir Linden) d26ea73ce8 SH-4625 FIX - changed a warning that didn't really indicate a problem to an info statement 2013-11-18 16:03:30 -05:00
Brad Payne (Vir Linden) 8179175e6e SH-4578 WIP - cleaner folder version accounting 2013-11-18 13:19:43 -05:00
Brad Payne (Vir Linden) c1f60e7f2f SH-4621 WIP 2013-11-15 13:33:31 -05:00
Brad Payne (Vir Linden) 6ea320198a SH-4595 WIP - use new LLInventoryObserver::CREATE flag to distinguish newly created items from existing ones being added to inventory. 2013-11-04 15:55:04 -05:00
Brad Payne (Vir Linden) e26268add0 SH-4595 WIP - reworked descendents of LLInventoryAddedObserver to use gInventory.getAddedIDs(). LLInventoryAddedObserver isn't really needed anymore, but leaving it in as a debugging point at least for now. 2013-11-01 11:02:51 -04:00
Richard Linden e340009fc5 second phase summer cleaning
replace llinfos, lldebugs, etc with new LL_INFOS(), LL_DEBUGS(), etc.
2013-08-09 17:11:19 -07:00
Richard Linden a2e22732f1 Summer cleaning - removed a lot of llcommon dependencies to speed up build times
consolidated most indra-specific constants in llcommon under indra_constants.h
fixed issues with operations on mixed unit types (implicit and explicit)
made LL_INFOS() style macros variadic in order to subsume other logging methods
such as ll_infos
added optional tag output to error recorders
2013-07-30 19:13:45 -07:00
Brad Payne (Vir Linden) 7af477f796 SH-4344 FIX - return the lowest UUID for a child of root with the desired preferred type. Also removed some duplicate code between findCategoryUUIDForType and findLibraryCategoryUUIDForType 2013-07-17 15:32:06 -04:00
Don Kjer a85fa3b10a Adding support for COPY methods to httpclient. Implementing viewer-side use of AISv3 COPY library folder operation. (SH-4304) 2013-07-11 15:15:04 -07:00
Brad Payne (Vir Linden) ffd7b0d7e7 SH-4305 WIP 2013-06-25 17:52:02 -04:00
Brad Payne (Vir Linden) 3e0e236f33 SH-4243 WIP - cleaned up callback structure for createNewCategory, modified makeNewOutfitLinks() to wait for category creation before populating. 2013-06-24 15:42:27 -04:00
Brad Payne (Vir Linden) 2d0b329003 SH-4238 WIP - postpone calling notifyObservers until all deletes are processed. 2013-06-17 16:20:17 -04:00
Brad Payne (Vir Linden) 89e3959cf3 SH-4216 WIP - moved AISv3 commands and responders to llaisapi.* files 2013-06-07 12:58:04 -04:00
Brad Payne (Vir Linden) 41694a902d SH-4216 WIP - broke up the onAISUpdateReceived monolith 2013-06-07 10:35:07 -04:00
Brad Payne (Vir Linden) bee76e3052 SH-4166 WIP - fix for a permissions issue that was preventing cof-created links from being reordered in outfits. 2013-06-06 17:59:16 -04:00
Brad Payne (Vir Linden) ca806315a9 SH-3635 WIP - logging cleanup, moved some big dumps into separate XML files 2013-06-05 15:52:44 -04:00
Brad Payne (Vir Linden) f7c9739fd9 SH-3635 WIP - COF slammer works in AISv3 regions. Extensive rework of onAISUpdateReceived. 2013-06-05 15:13:48 -04:00
Brad Payne (Vir Linden) 34d2cd0376 SH-4207 WIP - use item updates with callback when updating link descriptions. Reworked updateAppearanceFromCOF() cof-validation stages. 2013-05-24 15:51:33 -04:00
Brad Payne (Vir Linden) 6c56c77ec5 SH-4027 WIP - initial implementation of item update via AIS. 2013-05-24 08:53:21 -04:00
Brad Payne (Vir Linden) 0f6a4a3389 SH-4200 FIX - retry ais ops on 5xx errors, dialed back some verbose logging. 2013-05-20 18:06:26 -04:00
Brad Payne (Vir Linden) b1998cabc4 SH-4168 WIP, SH-4155 WIP - update inventory model based on ais returns, try to maintain loading... string more consistently in folder bridge 2013-05-13 17:08:37 -04:00
Brad Payne (Vir Linden) 228178ac15 SH-4168 WIP - fixed some bugs in inventory deletion and lost-and-found handling. 2013-05-09 11:01:29 -04:00
Brad Payne (Vir Linden) 9881b65845 SH-4154 FIX - added a few more validity checks. Disabled by default so users won't have logs spammed. 2013-05-07 16:12:18 -04:00
Brad Payne (Vir Linden) 89cef0cad2 SH-4154 WIP - gInventory.validate() has inventory model internal consistency checks 2013-05-01 17:55:49 -04:00
Brad Payne (Vir Linden) d843a0d8be SH-4137 WIP - added callback-based support for purge descendents, remove category 2013-04-25 17:09:05 -04:00
Brad Payne (Vir Linden) d73588eadd SH-4128 WIP - misc cleanup 2013-04-24 18:38:40 -04:00
Brad Payne (Vir Linden) eb88e4d378 SH-4128 WIP - cleanup around item link removal and callbacks 2013-04-24 18:08:20 -04:00
Brad Payne (Vir Linden) 4967998a5c CHUI-849 WIP, SH-4116 WIP - added simpler match check in inventory for when we don't need the list of matches to be returned. 2013-04-24 13:27:04 -04:00
Brad Payne (Vir Linden) 7b52a41e34 SH-4116 WIP - removed follow_folder_links behavior, which was used nowhere and isn't really desirable currently 2013-04-18 17:49:10 -04:00
Brad Payne (Vir Linden) e3ceb10c48 SH-4128 WIP - avoid needless called to updateLinkedObjectsFromPurge() 2013-04-18 17:31:35 -04:00
prep a2a25c9ed5 merge 2013-04-08 17:11:24 -04:00
Nyx Linden 3e53ade13e merge 2013-04-05 15:24:22 -04:00
Brad Payne (Vir Linden) d1d0a2cf67 SH-4058 - log spam reduction initiative. 2013-04-03 14:58:33 -04:00
Don Kjer 662d67e3b5 Merging LLCURL::Responder changes with CHUI changes. Fixed gcc 4.6 compile failures 2013-03-13 08:46:59 +00:00
Don Kjer f945415210 Large changes to the LLCurl::Responder API, as well as pulling in some changes to common libraries from the server codebase:
* Additional error checking in http handlers.
* Uniform log spam for http errors.
* Switch to using constants for http heads and status codes.
* Fixed bugs in incorrectly checking if parsing LLSD xml resulted in an error.
* Reduced spam regarding LLSD parsing errors in the default completedRaw http handler.  It should not longer be necessary to short-circuit completedRaw to avoid spam.
* Ported over a few bug fixes from the server code.
* Switch mode http status codes to use S32 instead of U32.
* Ported LLSD::asStringRef from server code; avoids copying strings all over the place.
* Ported server change to LLSD::asBinary; this always returns a reference now instead of copying the entire binary blob.
* Ported server pretty notation format (and pretty binary format) to llsd serialization.

* The new LLCurl::Responder API no longer has two error handlers to choose from.  Overriding the following methods have been deprecated:
** error - use httpFailure
** errorWithContent - use httpFailure
** result - use httpSuccess
** completed - use httpCompleted
** completedHeader - no longer necessary; call getResponseHeaders() from a completion method to obtain these headers.

* In order to 'catch' a completed http request, override one of these methods:
** httpSuccess - Called for any 2xx status code.
** httpFailure - Called for any non-2xx status code.
** httpComplete - Called for all status codes.  Default implementation is to call either httpSuccess or httpFailure.
* It is recommended to keep these methods protected/private in order to avoid triggering of these methods without using a 'push' method (see below).

* Uniform error handling should followed whenever possible by calling a variant of this during httpFailure:
** llwarns << dumpResponse() << llendl;
* Be sure to include LOG_CLASS(your_class_name) in your class in order for the log entry to give more context.

* In order to 'push' a result into the responder, you should no longer call error, errorWithContent, result, or completed.
* Nor should you directly call httpSuccess/Failure/Completed (unless passing a message up to a parent class).
* Instead, you can set the internal content of a responder and trigger a corresponding method using the following methods:
** successResult - Sets results and calls httpSuccess
** failureResult - Sets results and calls httpFailure
** completedResult - Sets results and calls httpCompleted

* To obtain information about a the response from a reponder method, use the following getters:
** getStatus - HTTP status code
** getReason - Reason string
** getContent - Content (Parsed body LLSD)
** getResponseHeaders - Response Headers (LLSD map)
** getHTTPMethod - HTTP method of the request
** getURL - URL of the request

* It is still possible to override completeRaw if you want to manipulate data directly out of LLPumpIO.

* See indra/llmessage/llcurl.h for more information.
2013-03-13 06:26:25 +00:00
prep linden 0123ab0dc6 Removed unneeded code. 2013-03-12 11:02:00 -04:00
prep 8e3b190e91 merge 2013-03-11 15:17:13 -04:00
prep e0c9174609 merge 2013-03-11 15:05:47 -04:00
prep 207d9fd767 Viewer-chui merge 2013-03-11 14:45:53 -04:00
Don Kjer 54cdc322b8 Fixing issues with not detecting when LLSD XML parsing fails. Changing most http error handlers to understand LLSD error responses. Fleshing out most http error handler message spam. 2013-03-05 22:05:22 -08:00
Brad Payne (Vir Linden) 70e22de2bb SH-3860 WIP - fixes the cloud on initial login, still have a COF version rae condition due to creation of the base outfit link 2013-03-01 09:06:40 -05:00
Brad Payne (Vir Linden) 2b6d7e5005 SH-3860 WIP - fixes for initial COF loading and config 2013-02-27 17:58:43 -05:00
Brad Payne (Vir Linden) b16dcda6a3 SH-3860 WIP, SH-3899 WIP - make folder version management more debuggable, log appearance request results 2013-02-25 19:12:36 -05:00
William Todd Stinson 67bc42a80a Pull and merge from ssh://hg@bitbucket.org/lindenlab/viewer-beta. 2012-11-20 16:20:40 -08:00
William Todd Stinson c9044c03b3 Pull and merge from ssh://hg@bitbucket.org/lindenlab/viewer-beta. 2012-11-09 18:51:23 -08:00
Don Kjer c06c35609c Updating linux build to gcc4.6 2012-10-11 00:09:04 +00:00
Gilbert Gonzales d41202336b CHUI-303: Problem was that the prior solution only updated (using dirtyFilter()) the inventory window that the paste occurred in. Resolution: Now each inventory window calls dirtyFilter(), which then determines visibility of the pasted item. 2012-09-04 14:21:25 -07:00
Richard Linden 4285cc271e CHUI-217 FIX Items are not visible in Merchant Outbox
cleaned up a lot custom code for folder view item creation in inbox and outbox
proper initialization of views from inventory panel starting folder
2012-07-30 15:15:42 -07:00
Brad Payne (Vir Linden) a5c9d89b28 merge 2012-07-30 14:57:33 -04:00
Todd Stinson 3e038cd71b Pull and merge from ssh://hg@bitbucket.org/lindenlab/viewer-release. 2012-07-27 12:53:54 -07:00
AlexanderP ProductEngine 3ae21b429e CHUI-207 FIXED Emptying Lost and Found and Trash in inventory crashes viewer 2012-07-20 17:16:22 +03:00
Merov Linden efa73d4975 CHUI-236 : WIP : Places panel works for My Inventory but still empty lists for Favorites Bar, My Landmarks and Library. 2012-07-19 20:38:07 -07:00
merov_linden 15f6f877f9 CHUI-236 : WIP : Modify the handling of FT_ROOT_INVENTORY which was creating havoc in LLInventoryModel instantiation. Still, some of those hack will have to come back on. 2012-07-19 03:57:24 +01:00
Dave Parks 9e9d32de38 merge 2012-06-22 14:04:33 -05:00
Richard Linden 4775084000 CHUI-101 WIP Make LLFolderview general purpose
inventory item labels and icons displaying again
2012-06-21 23:28:24 -07:00
Brad Payne (Vir Linden) 6ee0456220 merge 2012-06-04 15:28:08 -04:00
simon@Simon-PC.lindenlab.com 1777fa5187 Merge pull from lindenlab/viewer-development as requested by Oz for DRTVWR-148 2012-05-25 15:07:22 -07:00
Oz Linden 7637acf76e merge changes for DRTVWR-149 2012-05-22 06:03:42 -04:00
Nat Goodspeed ee87fd975f DRTVWR-136: Remove redundant remove_(item|category)() functions.
Incoming changes from two different project repos left viewer-development with
LLInventoryModel::removeItem() and removeCategory() plus free functions
remove_item() and remove_category() in llinventoryfunctions.cpp.
remove_category() was actually the better implementation; migrated its body
into LLInventoryModel::removeCategory(). Clearly the previous state of affairs
-- with LLInventoryModel::removeItem() plus a remove_category() free function
in a very different source file -- fooled two different developers into
overlooking the other of the pair. Unfortunately we each added different
"missing" functions, leaving us with a complete set of four.
Fix existing references to remove_item() and remove_category() free functions.
2012-04-14 22:23:24 -04:00
Oz Linden f79b775fcc merge changes for drtvwr-136 2012-04-13 20:55:47 -04:00
Nat Goodspeed b7e0e44e32 CHOP-854: Use new LLInventoryModel::removeObject() to discard offer.
Introduce new LLInventoryModel::removeCategory() method comparable to
removeItem(), but for folder objects (using changeCategoryParent() rather than
changeItemParent()). Introduce removeObject() method that calls one of the
above, depending on runtime object type.
2012-03-27 22:39:31 -04:00
Nat Goodspeed b8561da34d CHOP-854: Make LLInventoryModel::removeItem() call changeItemParent().
The body of removeItem() was already nearly identical to the body of
changeItemParent(); this eliminates the redundancy.
Improve logging for changeItemParent().
2012-03-27 19:06:33 -04:00
Nat Goodspeed fdd018783a CHOP-854: move change_(item|category)_parent() into LLInventoryModel.
It's not really clear why they're in llinventoryfunctions.{h,cpp} instead of
LLInventoryModel, and in fact LLInventoryModel::removeItem() already contains
code essentially cloned from change_item_parent() -- or perhaps vice-versa.
This changeset addresses only migrating the functions, and fixing up existing
references, to simplify code review.
2012-03-27 18:40:17 -04:00
Brad Payne (Vir Linden) b0b1634bd2 fixed typo 2012-03-22 18:33:02 -04:00
Nyx (Neal Orman) e1a10fd81c SH-3040 FIX Inventory caching issues
A complete fix for a single cause of caching issues, does not solve all caching issues.
Fixes the issue of inventory links that were incorrectly being marked as broken.
Broken links get a second chance to see if their base objects exist in inventory now.
2012-03-20 17:31:14 -04:00