Return failure code when an S3 put operation fails.
[bluesky.git] / bluesky / store-s3.c
index 03f497b..00bace4 100644 (file)
@@ -115,6 +115,7 @@ static void s3store_task(gpointer a, gpointer s)
 
     } else if (async->op == STORE_OP_PUT) {
         struct put_info info;
+        info.success = 0;
         info.val = async->data;
         info.offset = 0;
 
@@ -127,7 +128,11 @@ static void s3store_task(gpointer a, gpointer s)
         S3_put_object(&store->bucket, async->key, async->data->len, NULL, NULL,
                       &handler, &info);
 
-        async->result = 0;
+        if (info.success) {
+            async->result = 0;
+        } else {
+            g_warning("Error completing S3 put operation; client must retry!");
+        }
     }
 
     bluesky_store_async_mark_complete(async);