Commit Graph

219 Commits (3775572f4650797e7eeab0ba23e27f1f15f01cd5)

Author SHA1 Message Date
Visa Putkinen 3775572f46 Retry upload on XML error instead of crashing
Sometimes the Google Drive API sends malformed XML which crashes grive.
This patch adds a simple try-catch to Resource::Upload that retries the
upload if an XML exception is thrown from AuthAgent::Put.
2013-11-27 00:15:24 +02:00
Visa Putkinen 84785ec473 Fix hang when upload receives HTTP 500
When an uploading PUT request got a HTTP 500 as reponse, grive hanged
forever inside libcurl. This was because the File parameter was not
rewound to 0 position on retry. The XmlResponse had to be cleared as
well.

Rewinding the File and clearing the XmlResponse were not enough to fix
the problem, because when retrying after 500, HTTP 410 Gone or 412
Precondition failed is often received, and CheckHttpResponse would throw
an exception that crashes grive. Therefore, I implemented a retry logic
to Resource::Upload that retries the whole upload transaction if 410 or
412 was received.
2013-11-27 00:15:24 +02:00
Visa Putkinen 645bb2e7d4 Add delay before auth token refresh
This is sometimes necessary to prevent too frequent requests.
2013-11-27 00:15:15 +02:00
Visa Putkinen 986ab4acc6 Log XML on parse failure 2013-11-25 00:18:47 +02:00
Visa Putkinen 8b434dad14 Reduce number of syscalls while scanning local files 2013-11-24 14:34:03 +02:00
Visa Putkinen c15bfbe8bc Ignore only .grive and .grive_state 2013-11-24 14:25:01 +02:00
Nestal Wan 27817e835f using the new Json classes for bgrive 2013-05-03 00:40:04 +08:00
Nestal Wan 6ba04dcfba added operator<< to print out json 2013-05-02 00:55:39 +08:00
Nestal Wan 6fa6e690c6 added json writer 2013-05-02 00:41:47 +08:00
Nestal Wan abfa9ce765 added ValResponse class to parse JSON from http 2013-05-02 00:04:42 +08:00
Nestal Wan 2d29692601 added yajl parser 2013-05-01 22:47:37 +08:00
Nestal Wan 540e3d82db added type conversion to supported types 2013-05-01 13:36:29 +08:00
Nestal Wan 658fb757e3 added Val class for generic representation of JSON, but there's some problems with maps 2013-05-01 01:56:34 +08:00
Nestal Wan d5ca8e0afa show title and mime in GUI 2013-04-30 00:13:13 +08:00
Nestal Wan 15b3b85807 UT compile fixes 2013-04-29 23:49:01 +08:00
Nestal Wan bba65c0cc7 show files now. working good. 2013-04-29 23:47:33 +08:00
Nestal Wan 93fe68ce4c fixing the problems with multiple parent 2013-04-29 23:47:33 +08:00
Nestal Wan 94d66f0d30 can show tree now, but still has issues 2013-04-29 23:47:33 +08:00
Nestal Wan 326ae20ca7 showing in qt model, but no child 2013-04-29 23:47:33 +08:00
Nestal Wan ee6408d05f changed to store parent IDs 2013-04-29 23:47:33 +08:00
Nestal Wan 87d96972f7 Added Query() helper to Feed. and common URI header 2013-04-29 23:47:33 +08:00
Nestal Wan 209d0b5a59 added code to fetch all folders 2013-04-29 23:47:33 +08:00
Nestal Wan 62dc542341 refactored old GDoc API into v1 namespace. using v2 namespace for new Google Drive API 2013-04-29 23:47:33 +08:00
Nestal Wan 738435837b using DataStream instead of Receiveable 2013-04-29 23:47:32 +08:00
Nestal Wan 443a85d558 removing redundant header parameter in Feed 2013-04-29 23:47:32 +08:00
Nestal Wan d4a7fae273 refactored exception handling 2013-04-29 23:47:32 +08:00
Nestal Wan 755ee1c9ad new qt gui 2013-04-29 23:47:32 +08:00
justin 29f17397c1 fix broken unit tests 2012-08-01 20:46:59 +01:00
Nestal Wan 804fe923f2 refactored the config file part from #109 2012-07-30 16:52:59 +08:00
Nestal Wan 612b35a090 fixed compiler warnings 2012-07-30 16:43:51 +08:00
Nestal Wan bec8362639 added template contructor for object 2012-07-30 16:43:36 +08:00
Nestal Wan 0b2a8c0a54 clean up on #109 2012-07-30 15:24:47 +08:00
justin 034891a610 issue 86 allow sync folder to be specified, move Config class and add basic unit test 2012-07-29 18:17:41 +01:00
justin e0383a843c remove unused code 2012-07-29 17:53:02 +01:00
Nestal Wan d831b8d59f support creating revisions with --new-rev (#87) 2012-07-27 00:45:53 +08:00
Nestal Wan fd81cc1fe4 added --log-xml for debugging (#80) 2012-07-27 00:17:44 +08:00
Nestal Wan 5a0c6ae56e don't throw in CurlAgent for all HTTP errors (#82) 2012-07-26 01:25:44 +08:00
Nestal Wan 51e42914f3 refreshing the token if HTTP 401 is returned (#83) 2012-07-23 16:00:21 +08:00
Nestal Wan 3acd25cb55 proper fix for (#98: missing reference count for Json::Get() ) 2012-07-23 15:43:11 +08:00
justin 96227d38cf store modified time of file in m_mtime instead of passing value as param 2012-07-19 22:22:34 +01:00
Nestal Wan c6a1c47d40 added retry on HTTP 500 & 503 (#82) 2012-07-20 00:50:40 +08:00
Nestal Wan 28e8012ca5 added AuthAgent, a wrapper around http agent 2012-07-20 00:39:36 +08:00
Nestal Wan 57c431dd83 added logs for tracing last sync time 2012-07-19 23:48:01 +08:00
Jan Winkler 2f94168599 Set up an else-clause for IBERTY_LIBRARY and removed unnecessary BOOST-find
In ./CMakeLists.txt the added find_package( Boost ) was removed due to being unnecessary. In libgrive/CMakeLists.txt the IBERTY_LIBRARY is now set to an empty string of it was not found (otherwise the linker breaks during `cmake').
2012-07-19 17:19:40 +02:00
Jan Winkler 56de93c8c7 Commented out iberty_library stuff
The iberty_library could not be found anywhere in my repos or on my system. Compiles and runs fine without.
2012-07-19 16:51:03 +02:00
Nestal Wan 7cc4984932 use mmap for checksum 2012-07-17 01:59:00 +08:00
Nestal Wan ce245576b5 use StdioFile for uploading (#88) 2012-07-17 01:58:16 +08:00
Nestal Wan 75c67dad8d added class & functions for memory mapped files 2012-07-17 01:08:34 +08:00
Nestal Wan 94383e0030 ignoring files with missing MD5 checksum in remote feeds 2012-07-16 23:37:50 +08:00
Nestal Wan 593c335a5e improved logging for HTTP responses 2012-07-16 23:23:08 +08:00