Commit Graph

525 Commits (27ca714e565da9f6959ceefd1bd657f96e245fc0)

Author SHA1 Message Date
Teddy Reed 9156785334 Check for missing downloadUrl 2015-11-09 20:27:55 -08:00
Vitaliy Filippov 44cb91f94e State that YAJL 2.x is required 2015-10-11 18:59:25 +03:00
Vitaliy Filippov f0b6bcf8b4 Add Debian packaging scripts
Based on work by Alin Andrei (https://launchpad.net/~nilarimogard/+archive/ubuntu/webupd8)
2015-10-11 15:32:00 +03:00
Vitaliy Filippov 81b1a4f05c Fix non-virtual destructor and missing return value (fixes "illegal instruction" under FreeBSD) 2015-10-10 21:43:54 +00:00
Vitaliy Filippov df99954382 Change m_str.replace back to insert + remove StringStream limit 2015-10-10 13:01:05 +03:00
Vitaliy Filippov 887da88c14 Simplify http::Agent methods and use multipart upload
Should speed-up uploads by updating metadata and contents at the same time.
Also should fix most 412 errors because of the update atomicity.
2015-10-10 00:54:05 +03:00
Vitaliy Filippov 679fa0eec6 Use title instead of originalFilename - fixes #32 2015-10-08 14:23:59 +03:00
Vitaliy Filippov 1cca10272d Track both server-side and local sync times - fixes #6 2015-10-08 13:30:50 +03:00
Vitaliy Filippov d9300c953e Fix .trash and .grive_state in drive location when used with -p option
Previously .trash and .grive_state were incorrectly placed in the current
working directory instead of synced root directory (-p).
2015-10-08 01:41:35 +03:00
Vitaliy Filippov f288c559c6 Oops. I was thinking auto_ptr is smart_ptr O_o. Sorry. Also fix #33 2015-10-07 01:57:28 +03:00
Vitaliy Filippov dc8e172a27 Handle error HTTP responses in OAuth2 2015-09-30 15:52:24 +03:00
Vitaliy Filippov 9402bff12e Implement normal reliable HTTP logging (in Agent)
Flushes on every call so may be slightly slow, but in return always provides full
information in case of a segfault or a failed assertion.
2015-09-30 15:01:50 +03:00
Vitaliy Filippov 9b8e0c826b Remove request logging from Drive/Feed/Syncer (prepare to move it into CurlAgent) 2015-09-30 13:54:45 +03:00
Vitaliy Filippov 8fd74d7a36 Update readme 2015-09-25 13:27:54 +03:00
Vitaliy Filippov 7ac15187d3 Add --ignore (perl regexp) option 2015-09-25 13:11:56 +03:00
Vitaliy Filippov 5dc7028c8a Add expat into README.md dependency list - closes #25 2015-08-30 22:48:30 +03:00
Vitaliy Filippov 6f35a32ca2 Get auth headers again before each Put() retry - fixes #19 2015-08-04 22:59:09 +03:00
Vitaliy Filippov 308aab92cf Also print response body on 401 2015-07-04 00:25:13 +03:00
Vitaliy Filippov 1d47616518 Fix #17 (curl_slist memory leak) 2015-07-04 00:18:59 +03:00
Vitaliy Filippov 5da32905ea Move old tests to fix build errors, fixes #14 2015-06-27 23:18:03 +03:00
Vitaliy Filippov 70ec926e2a Add response body and headers to diagnostic information on HTTP 400 and above
Also should fix #13 because stops AuthAgent from using the same response multiple times
2015-06-27 22:58:09 +03:00
Vitaliy Filippov 06eb1a7df2 Fix FreeBSD build 2015-05-31 22:35:15 +03:00
Vitaliy Filippov 82705f39b0 Fix 412's on reupload. Fixes #5 2015-05-21 19:23:45 +03:00
Vitaliy Filippov 37b2cf3102 Ignore files without md5Checksum. Fixes #2 2015-05-20 15:14:24 +03:00
Vitaliy Filippov 815d0ea44e Make libbfd happy. In conjunction with libiberty fixes #1 2015-05-20 02:15:01 +03:00
Vitaliy Filippov c006e75d26 Return libiberty back 2015-05-20 02:15:01 +03:00
Vitaliy Filippov 29241002eb Add myself to copyrights, change README 2015-05-17 22:11:35 +03:00
Vitaliy Filippov 0bdbf87514 Ignore local .trash, fix REST API - it mostly works 2015-05-17 21:05:24 +03:00
Vitaliy Filippov 2d34d7708b Implement upload methods for REST API Syncer (basic file upload to root now works) 2015-05-17 20:10:03 +03:00
Vitaliy Filippov a4521d9d62 Remove obsolete gdbm & iberty cmake modules 2015-05-17 16:59:58 +03:00
Vitaliy Filippov 862fca035a Move all protocol interaction into Syncers out of the base code 2015-05-17 16:54:04 +03:00
Vitaliy Filippov 717a6a4793 Use vector<Entry> instead of iterator_adaptor to hide implementation details 2015-05-17 14:32:04 +03:00
Vitaliy Filippov dabaaac38f Cleanup Feed interface (remove some unused methods) 2015-05-17 12:29:00 +03:00
Vitaliy Filippov 6a15dd09a5 Split Resource to global (base/Resource) and API-specific ({drive,drive2}/Syncer) parts 2015-05-17 02:00:00 +03:00
Vitaliy Filippov f41e4f6dd3 Split Entry to v1::Entry1 and v2::Entry2 2015-05-16 21:10:38 +03:00
Vitaliy Filippov b0255d9699 Add Entry constructor for new Drive REST API 2015-05-16 19:38:43 +03:00
Vitaliy Filippov 2d8da5cab3 Remove doclist API specific fields from Entry class: kind, create_link, edit_link and alt_self 2015-05-16 12:35:41 +03:00
Vitaliy Filippov 770baca3fc Reduce syscalls slightly more (os::FileCTime is still left...) 2015-05-16 01:05:19 +03:00
Vitaliy Filippov 5bc503279a Remove JSON-C json wrappers, use YAJL for everything 2015-05-16 00:37:02 +03:00
Vitaliy Filippov ac1763f2c7 Merge https://github.com/visap/grive/commits/visa 2015-05-16 00:36:26 +03:00
Vitaliy Filippov 12774a952a Remove bgrive (dead and unused code) 2015-05-14 01:22:37 +03:00
Vitaliy Filippov f16f212281 use pkg-config also for finding json-c (fixes paths on debian) 2015-05-14 01:20:35 +03:00
Vitaliy Filippov c0c89c306c Remove useless swap() code 2015-05-14 01:10:09 +03:00
Vitaliy Filippov 94efea11dd Do not try to install doc/grive.1 from bgrive cmake 2014-07-23 14:51:13 +04:00
Vitaliy Filippov 400d9e0c0f Fix long/int cast errors 2014-07-23 14:51:13 +04:00
Vitaliy Filippov 459313ecf5 Find YAJL via pkg-config 2014-07-23 14:51:13 +04:00
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