Implement fetching of cloud log items via range requests.
[bluesky.git] / bluesky / cloudlog.c
index ebbdeeb..a37776a 100644 (file)
@@ -283,50 +283,15 @@ void bluesky_cloudlog_fetch(BlueSkyCloudLog *log)
      * Once that is done, we can fall through the case of remapping the data
      * itself. */
     if (log->type == LOGTYPE_UNKNOWN) {
-        bluesky_cloudlog_stats_update(log, -1);
-        BlueSkyRCStr *raw = NULL;
-        if ((log->location_flags | log->pending_write) & CLOUDLOG_JOURNAL) {
-            raw = bluesky_log_map_object(log->fs, -1, log->log_seq,
-                                         log->log_offset, log->log_size, FALSE);
-        }
-
-        if (raw == NULL && (log->location_flags & CLOUDLOG_CLOUD)) {
-            log->location_flags &= ~CLOUDLOG_JOURNAL;
-            raw = bluesky_log_map_object(log->fs,
-                                         log->location.directory,
-                                         log->location.sequence,
-                                         log->location.offset,
-                                         log->location.size,
-                                         FALSE);
-        }
-
+        BlueSkyRCStr *raw = bluesky_log_map_object(log, FALSE);
         g_assert(raw != NULL);
         bluesky_deserialize_cloudlog(log, raw->data, raw->len);
         bluesky_string_unref(raw);
-        bluesky_cloudlog_stats_update(log, 1);
     }
 
     /* At this point all metadata should be available and we need only remap
      * the object data. */
-
-    int offset;
-    if ((log->location_flags | log->pending_write) & CLOUDLOG_JOURNAL) {
-        bluesky_cloudlog_stats_update(log, -1);
-        offset = log->log_offset + sizeof(struct log_header);
-        log->data = bluesky_log_map_object(log->fs, -1, log->log_seq,
-                                           offset, log->data_size, TRUE);
-        bluesky_cloudlog_stats_update(log, 1);
-    }
-
-    if (log->data == NULL && (log->location_flags & CLOUDLOG_CLOUD)) {
-        log->location_flags &= ~CLOUDLOG_JOURNAL;
-        bluesky_cloudlog_stats_update(log, -1);
-        offset = log->location.offset + sizeof(struct cloudlog_header);
-        log->data = bluesky_log_map_object(log->fs, log->location.directory,
-                                           log->location.sequence,
-                                           offset, log->data_size, TRUE);
-        bluesky_cloudlog_stats_update(log, 1);
-    }
+    log->data = bluesky_log_map_object(log, TRUE);
 
     if (log->data == NULL) {
         g_error("Unable to fetch cloudlog entry!");