@@ -35,8 +35,6 @@ struct _ds3_request{
3535 GHashTable * headers ;
3636 GHashTable * query_params ;
3737
38- uint64_t expected_status_code ;
39-
4038 //These next few elements are only for the bulk commands
4139 ds3_bulk_object_list * object_list ;
4240};
@@ -461,8 +459,7 @@ static ds3_error* _net_process_request(const ds3_client* client, const ds3_reque
461459 return error ;
462460 }
463461
464- fprintf (stderr , "Got status code of (%llu) expected (%llu)\n" , response_data .status_code , request -> expected_status_code );
465- if (request -> expected_status_code != response_data .status_code ) {
462+ if (response_data .status_code < 200 || response_data .status_code >= 300 ) {
466463 ds3_error * error = _ds3_create_error (DS3_ERROR_BAD_STATUS_CODE , "Got an unexpected status code." );
467464 error -> error = g_new0 (ds3_error_response , 1 );
468465 error -> error -> status_code = response_data .status_code ;
@@ -567,7 +564,6 @@ static struct _ds3_request* _common_request_init(void){
567564
568565ds3_request * ds3_init_get_service (void ) {
569566 struct _ds3_request * request = _common_request_init ();
570- request -> expected_status_code = 200 ;
571567 request -> verb = HTTP_GET ;
572568 request -> path = g_new0 (char , 2 );
573569 request -> path [0 ] = '/' ;
@@ -576,31 +572,27 @@ ds3_request* ds3_init_get_service(void) {
576572
577573ds3_request * ds3_init_get_bucket (const char * bucket_name ) {
578574 struct _ds3_request * request = _common_request_init ();
579- request -> expected_status_code = 200 ;
580575 request -> verb = HTTP_GET ;
581576 request -> path = g_strconcat ("/" , bucket_name , NULL );
582577 return (ds3_request * ) request ;
583578}
584579
585580ds3_request * ds3_init_get_object (const char * bucket_name , const char * object_name ) {
586581 struct _ds3_request * request = _common_request_init ();
587- request -> expected_status_code = 200 ;
588582 request -> verb = HTTP_GET ;
589583 request -> path = g_strconcat ("/" , bucket_name , "/" , object_name , NULL );
590584 return (ds3_request * ) request ;
591585}
592586
593587ds3_request * ds3_init_delete_object (const char * bucket_name , const char * object_name ) {
594588 struct _ds3_request * request = _common_request_init ();
595- request -> expected_status_code = 204 ;
596589 request -> verb = HTTP_DELETE ;
597590 request -> path = g_strconcat ("/" , bucket_name , "/" , object_name , NULL );
598591 return (ds3_request * ) request ;
599592}
600593
601594ds3_request * ds3_init_put_object (const char * bucket_name , const char * object_name , uint64_t length ) {
602595 struct _ds3_request * request = _common_request_init ();
603- request -> expected_status_code = 200 ;
604596 request -> verb = HTTP_PUT ;
605597 request -> path = g_strconcat ("/" , bucket_name , "/" , object_name , NULL );
606598 request -> length = length ;
@@ -609,23 +601,20 @@ ds3_request* ds3_init_put_object(const char* bucket_name, const char* object_nam
609601
610602ds3_request * ds3_init_put_bucket (const char * bucket_name ) {
611603 struct _ds3_request * request = _common_request_init ();
612- request -> expected_status_code = 200 ;
613604 request -> verb = HTTP_PUT ;
614605 request -> path = g_strconcat ("/" , bucket_name , NULL );
615606 return (ds3_request * ) request ;
616607}
617608
618609ds3_request * ds3_init_delete_bucket (const char * bucket_name ) {
619610 struct _ds3_request * request = _common_request_init ();
620- request -> expected_status_code = 204 ;
621611 request -> verb = HTTP_DELETE ;
622612 request -> path = g_strconcat ("/" , bucket_name , NULL );
623613 return (ds3_request * ) request ;
624614}
625615
626616ds3_request * ds3_init_get_bulk (const char * bucket_name , ds3_bulk_object_list * object_list ) {
627617 struct _ds3_request * request = _common_request_init ();
628- request -> expected_status_code = 200 ;
629618 request -> verb = HTTP_PUT ;
630619 request -> path = g_strconcat ("/_rest_/bucket/" , bucket_name , NULL );
631620 _set_query_param ((ds3_request * ) request , "operation" , "start_bulk_get" );
@@ -635,7 +624,6 @@ ds3_request* ds3_init_get_bulk(const char* bucket_name, ds3_bulk_object_list* ob
635624
636625ds3_request * ds3_init_put_bulk (const char * bucket_name , ds3_bulk_object_list * object_list ) {
637626 struct _ds3_request * request = _common_request_init ();
638- request -> expected_status_code = 200 ;
639627 request -> verb = HTTP_PUT ;
640628 request -> path = g_strconcat ("/_rest_/bucket/" , bucket_name , NULL );
641629 _set_query_param ((ds3_request * ) request , "operation" , "start_bulk_put" );
@@ -1291,11 +1279,10 @@ ds3_error* ds3_bulk(const ds3_client* client, const ds3_request* _request, ds3_b
12911279 // Start processing the data that was received back.
12921280 doc = xmlParseMemory ((const char * ) xml_blob -> data , xml_blob -> len );
12931281 if (doc == NULL ) {
1294- char * message = g_strconcat ("Failed to parse response document. The actual response is: " , xml_blob -> data , NULL );
1282+ // Bulk put with just empty folder objects will return a 204 and thus
1283+ // not have a body.
12951284 g_byte_array_free (xml_blob , TRUE);
1296- ds3_error * error = _ds3_create_error (DS3_ERROR_INVALID_XML , message );
1297- g_free (message );
1298- return error ;
1285+ return NULL ;
12991286 }
13001287
13011288 error_response = _parse_master_object_list (doc , response );
0 commit comments