2828#include "ds3_string_multimap_impl.h"
2929#include "ds3_uint64_string_map.h"
3030#include "ds3_utils.h"
31+ #include "ds3_marshaling.h"
3132
3233#ifdef _WIN32
3334 #include <io.h>
@@ -311,13 +312,6 @@ static ds3_bool xml_get_bool_from_attribute(const ds3_log* log, xmlDocPtr doc, s
311312 return xml_get_bool(log, doc, (xmlNodePtr) attribute);
312313}
313314
314- typedef struct {
315- char* buff;
316- size_t size;
317- size_t total_read;
318- }ds3_xml_send_buff;
319-
320-
321315static size_t _ds3_send_xml_buff(void* buffer, size_t size, size_t nmemb, void* user_data) {
322316 size_t to_read;
323317 size_t remaining;
@@ -336,18 +330,6 @@ static size_t _ds3_send_xml_buff(void* buffer, size_t size, size_t nmemb, void*
336330 return to_read;
337331}
338332
339- typedef enum {
340- BULK_PUT,
341- BULK_GET,
342- BULK_DELETE,
343- GET_PHYSICAL_PLACEMENT,
344- COMPLETE_MPU,
345- STRING,
346- STRING_LIST,
347- ID_LIST,
348- DATA
349- }object_list_type;
350-
351333static ds3_error* _internal_request_dispatcher(
352334 const ds3_client* client,
353335 const ds3_request* request,
@@ -408,7 +390,7 @@ static ds3_error* _get_request_xml_nodes(
408390 return NULL;
409391}
410392
411- static xmlDocPtr _generate_xml_bulk_objects_list (const ds3_bulk_object_list_response* obj_list, object_list_type list_type) {
393+ xmlDocPtr ds3_generate_xml_bulk_objects_list (const ds3_bulk_object_list_response* obj_list, object_list_type list_type) {
412394 char size_buff[STRING_BUFFER_SIZE];
413395 xmlDocPtr doc;
414396 ds3_bulk_object_response* obj;
@@ -442,7 +424,7 @@ static xmlDocPtr _generate_xml_bulk_objects_list(const ds3_bulk_object_list_resp
442424 return doc;
443425}
444426
445- static xmlDocPtr _generate_xml_complete_mpu (const ds3_complete_multipart_upload_response* mpu_list) {
427+ xmlDocPtr ds3_generate_xml_complete_mpu (const ds3_complete_multipart_upload_response* mpu_list) {
446428 char size_buff[STRING_BUFFER_SIZE];
447429 xmlDocPtr doc;
448430 ds3_multipart_upload_part_response* part;
@@ -469,7 +451,7 @@ static xmlDocPtr _generate_xml_complete_mpu(const ds3_complete_multipart_upload_
469451 return doc;
470452}
471453
472- static xmlDocPtr _generate_xml_delete_objects (ds3_delete_objects_response* keys_list) {
454+ xmlDocPtr ds3_generate_xml_delete_objects (ds3_delete_objects_response* keys_list) {
473455 xmlDocPtr doc;
474456 ds3_str* key;
475457 xmlNodePtr del_node, obj_node;
@@ -492,7 +474,7 @@ static xmlDocPtr _generate_xml_delete_objects(ds3_delete_objects_response* keys_
492474 return doc;
493475}
494476
495- static xmlDocPtr _generate_xml_ids (ds3_ids_list* ids_list) {
477+ xmlDocPtr ds3_generate_xml_ids (ds3_ids_list* ids_list) {
496478 xmlDocPtr doc;
497479 ds3_str* key;
498480 xmlNodePtr ids_node, id_node;
@@ -505,7 +487,7 @@ static xmlDocPtr _generate_xml_ids(ds3_ids_list* ids_list) {
505487 for (id_num = 0; id_num < ids_list->num_strings; id_num++) {
506488 key = ids_list->strings_list[id_num];
507489
508- xmlNewTextChild(id_node , NULL, (xmlChar*) "Id", (xmlChar*) key->value);
490+ id_node = xmlNewTextChild(ids_node , NULL, (xmlChar*) "Id", (xmlChar*) key->value);
509491 xmlAddChild(ids_node, id_node);
510492 }
511493
@@ -530,29 +512,29 @@ static ds3_error* _init_request_payload(const ds3_request* _request,
530512 if (request->object_list == NULL || request->object_list->num_objects == 0) {
531513 return ds3_create_error(DS3_ERROR_MISSING_ARGS, "The bulk command requires a list of objects to process");
532514 }
533- doc = _generate_xml_bulk_objects_list (request->object_list, operation_type);
515+ doc = ds3_generate_xml_bulk_objects_list (request->object_list, operation_type);
534516 break;
535517
536518 case COMPLETE_MPU:
537519 if (request->mpu_list == NULL || request->mpu_list->num_parts == 0) {
538520 return ds3_create_error(DS3_ERROR_MISSING_ARGS, "The complete multipart upload command requires a list of objects to process");
539521 }
540- doc = _generate_xml_complete_mpu (request->mpu_list);
522+ doc = ds3_generate_xml_complete_mpu (request->mpu_list);
541523 break;
542524
543525 case BULK_DELETE:
544526 case STRING_LIST:
545527 if (request->delete_objects == NULL || request->delete_objects->num_strings == 0) {
546528 return ds3_create_error(DS3_ERROR_MISSING_ARGS, "The delete objects command requires a list of objects to process");
547529 }
548- doc = _generate_xml_delete_objects (request->delete_objects);
530+ doc = ds3_generate_xml_delete_objects (request->delete_objects);
549531 break;
550532
551533 case ID_LIST:
552534 if (request->ids == NULL || request->ids->num_strings == 0) {
553535 return ds3_create_error(DS3_ERROR_MISSING_ARGS, "The suspect blob command requires a list of ids to process");
554536 }
555- doc = _generate_xml_ids (request->ids);
537+ doc = ds3_generate_xml_ids (request->ids);
556538 break;
557539
558540 case STRING: // *** not XML - do not interpret
0 commit comments