Commit Graph

12 Commits (aa630cac08d14092e156c30042cb06e5e4937f2e)

Author SHA1 Message Date
Brad Payne (Vir Linden) a04a706c1b merge 2013-05-21 16:18:48 -04:00
Oz Linden ddd5659f81 merge changes for DRTVWR-294 2013-04-19 10:11:29 -04:00
Don Kjer beeefb4526 Renaming HTTP_HEADER_* into HTTP_IN_HEADER_* and HTTP_OUT_HEADER_* to make it more clear which header strings should be used for incoming vs outgoing situations.
Using constants for commonly used llhttpnode context strings.
2013-04-04 21:50:45 +00:00
Graham Madarasz bf6182daa8 Update Mac and Windows breakpad builds to latest 2013-03-29 07:50:08 -07: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
Don Kjer 7405554290 Fixed potential memory leak in LLHTTPClient. Fixed potential hanging http requests in LLHTTPClient. Fixed munging of "Pragma" headers in LLHTTPClientAdapter 2013-03-13 08:49:26 +00:00
Oz Linden 06b0d72efa Change license from GPL to LGPL (version 2.1) 2010-08-13 07:24:57 -04:00
Bryan O'Sullivan 30ff6cabd6 Merge with trunk 2009-08-31 13:47:47 -07:00
Christian Goetze e588d1f284 svn merge -r125825:125901 svn+ssh://svn.lindenlab.com/svn/user/cg/qar-1654
QAR-1654 merge completed.
2009-07-01 00:22:05 +00:00
Steven Bennetts 9ec432034d merge -r 122421-124917 viewer-2.0.0-2 -> viewer-2.0.0-3
ignore-dead-branch
2009-06-21 08:04:56 +00:00
Dave Simmons 24b26d71ee svn merge -r113004:115000 svn+ssh://svn.lindenlab.com/svn/linden/branches/server/server-1.26
Merge latest 1.26 into trunk
2009-03-20 20:00:47 +00:00
Robert Knop c88b470a8a svn merge -r108815:112761 svn+ssh://svn.lindenlab.com/svn/linden/branches/server/server-1.26
The biggest things in this are Scalable Space Servers and Maint-Server-6

QAR-1209 : SSS
QAR-1295 : maint-server-6

Conflicts resolved by prospero:

C    scripts/farm_distribute

C    scripts/automated_build_scripts/build-linux.sh : resolved by
                     prospero, mostly kept the merge-right version in
                     the conflict, but there was one block of repeated
                     code from earlier that I removed.

C    scripts/automated_build_scripts/build-mac.sh : kept merge-right

C    indra/llcommon/llversionserver.h : svn revert

C    indra/newsim/llsimparcel.h : kept *both*... working had "setArea",
                    merge-right had exportStream and importStream

C    indra/newsim/llsimparcel.cpp : see llsimparcel.h

C    indra/newsim/lltask.h : working had LLTask derived also from
                   LLScriptResourceConsumer, merge-right had LLTask
                   dervied also from LLAgentPosition.  To resolve
                   conflict, derive from both.

C    indra/newsim/lllslmanager.h : kept merge-right (had an added comment)

C    indra/llmessage/llhttpnode.h : kept working (added the definition
                   of method LLHTTPNode::extendedResult)

C    indra/lscript/lscript_execute_mono/llscriptexecutemono.cpp
C    indra/lscript/lscript_execute_mono/llscriptexecutemono.h
                  : These two were resolved by si, in consultation with daveh


I also had to add the following stubs to
indra/newsim/tests/llgodkickutils_test.cpp in order to get it to
compile:

  // LLScriptResourceConsumer interface methods in LLTask
  LLScriptResource::LLScriptResource() { }
  LLScriptResourcePool::LLScriptResourcePool() { }
  LLScriptResourcePool LLScriptResourcePool::null;

  LLScriptResourceConsumer::LLScriptResourceConsumer() { }
  LLScriptResourcePool& LLScriptResourceConsumer::getScriptResourcePool() { return LLScriptResourcePool::null; }
  const LLScriptResourcePool& LLScriptResourceConsumer::getScriptResourcePool() const { return LLScriptResourcePool::null; }
  bool LLScriptResourceConsumer::switchScriptResourcePools(LLScriptResourcePool& new_pool) { return false; }
  bool LLScriptResourceConsumer::canUseScriptResourcePool(const LLScriptResourcePool& resource_pool) { return false; }
  bool LLScriptResourceConsumer::isInPool(const LLScriptResourcePool& resource_pool) { return false; }
  void LLScriptResourceConsumer::setScriptResourcePool(LLScriptResourcePool& pool) { }

  S32 LLTask::getUsedPublicURLs() const { return 0; }
  void LLTask::setScriptResourcePool(LLScriptResourcePool& pool) { }
2009-02-25 21:02:17 +00:00