diff options
| author | 2008-12-12 23:39:33 +0100 | |
|---|---|---|
| committer | 2008-12-12 23:39:33 +0100 | |
| commit | 3d8ba053deeacd74e621469d3d45d1db38ee411a (patch) | |
| tree | 9c2010c9da179f96d55988f19c861301a68e5eb4 /src/xplist.c | |
| parent | 9ca887308d59e6cb5bf684f9f3bd968118e8014f (diff) | |
| download | libimobiledevice-3d8ba053deeacd74e621469d3d45d1db38ee411a.tar.gz libimobiledevice-3d8ba053deeacd74e621469d3d45d1db38ee411a.tar.bz2 | |
Change from Base64 encoded buffers to real buffers. Base64 decoding/encoding only happens in xml plists.
Diffstat (limited to 'src/xplist.c')
| -rw-r--r-- | src/xplist.c | 8 |
1 files changed, 6 insertions, 2 deletions
diff --git a/src/xplist.c b/src/xplist.c index 3e975f6..2d650b4 100644 --- a/src/xplist.c +++ b/src/xplist.c | |||
| @@ -165,7 +165,9 @@ void node_to_xml(GNode * node, gpointer xml_struct) | |||
| 165 | 165 | ||
| 166 | case PLIST_DATA: | 166 | case PLIST_DATA: |
| 167 | tag = "data"; | 167 | tag = "data"; |
| 168 | val = format_string(node_data->buff, 60, xstruct->depth); | 168 | gchar *valtmp = g_base64_encode(node_data->buff, node_data->length); |
| 169 | val = format_string(valtmp, 60, xstruct->depth); | ||
| 170 | g_free(valtmp); | ||
| 169 | break; | 171 | break; |
| 170 | case PLIST_ARRAY: | 172 | case PLIST_ARRAY: |
| 171 | tag = "array"; | 173 | tag = "array"; |
| @@ -267,7 +269,9 @@ void xml_to_node(xmlNodePtr xml_node, plist_t * plist_node) | |||
| 267 | } | 269 | } |
| 268 | 270 | ||
| 269 | if (!xmlStrcmp(node->name, "data")) { | 271 | if (!xmlStrcmp(node->name, "data")) { |
| 270 | data->buff = strdup(xmlNodeGetContent(node)); | 272 | gsize size = 0; |
| 273 | data->buff = g_base64_decode(xmlNodeGetContent(node), &size); | ||
| 274 | data->length = size; | ||
| 271 | data->type = PLIST_DATA; | 275 | data->type = PLIST_DATA; |
| 272 | continue; | 276 | continue; |
| 273 | } | 277 | } |
