summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCharlie Brej <cbrej@cs.man.ac.uk>2010-08-02 15:20:18 +0100
committerCharlie Brej <cbrej@cs.man.ac.uk>2010-08-02 15:20:18 +0100
commit4f920a31312b19fb8f2314a152dc4555c8400001 (patch)
treeb57b512ee5a0d7ce82fc24ac3d42dcb962f5217c
parent1854f612acc88c4f574c663dc91bf051bf9175a0 (diff)
Change the record key value pair separator to a ": " like in HTTP
-rw-r--r--src/libtidbit/tidbit-record.c20
1 files changed, 13 insertions, 7 deletions
diff --git a/src/libtidbit/tidbit-record.c b/src/libtidbit/tidbit-record.c
index 10d3e21..fb2ea4f 100644
--- a/src/libtidbit/tidbit-record.c
+++ b/src/libtidbit/tidbit-record.c
@@ -36,6 +36,8 @@
#define TIDBIT_RECORD_ELEMENT_KEY_EXPIRES TIDBIT_RECORD_ELEMENT_KEY_BASE "expires"
#define TIDBIT_RECORD_ELEMENT_KEY_SIGNED TIDBIT_RECORD_ELEMENT_KEY_BASE "signed"
+#define TIDBIT_RECORD_ELEMENT_SEPARATOR ": "
+
#define TIDBIT_RECORD_ELEMENT_KEY_CHAR_IS_VALID(_chr) (((_chr) >= 'a' && (_chr) <= 'z') || (_chr) == '_')
#define TIDBIT_RECORD_ELEMENT_VALUE_CHAR_IS_VALID(_chr) ((_chr) >= 0x20)
@@ -115,17 +117,17 @@ void tidbit_record_sign (PtrTidbitRecord record, PtrTidbitKey key)
record->user_name = g_strdup(key->public_key_string); //FIXME use function
GString* rec_str = g_string_sized_new (TIDBIT_RECORD_MAX_SIZE);
- g_string_append_printf (rec_str, TIDBIT_RECORD_ELEMENT_KEY_USERKEY ":%s\n", record->user_name);
- g_string_append_printf (rec_str, TIDBIT_RECORD_ELEMENT_KEY_TABLE ":%s\n", record->table_name);
- g_string_append_printf (rec_str, TIDBIT_RECORD_ELEMENT_KEY_CREATED ":%ld\n", record->start_time);
- g_string_append_printf (rec_str, TIDBIT_RECORD_ELEMENT_KEY_EXPIRES ":%ld\n", record->end_time);
+ g_string_append_printf (rec_str, TIDBIT_RECORD_ELEMENT_KEY_USERKEY TIDBIT_RECORD_ELEMENT_SEPARATOR "%s\n", record->user_name);
+ g_string_append_printf (rec_str, TIDBIT_RECORD_ELEMENT_KEY_TABLE TIDBIT_RECORD_ELEMENT_SEPARATOR "%s\n", record->table_name);
+ g_string_append_printf (rec_str, TIDBIT_RECORD_ELEMENT_KEY_CREATED TIDBIT_RECORD_ELEMENT_SEPARATOR "%ld\n", record->start_time);
+ g_string_append_printf (rec_str, TIDBIT_RECORD_ELEMENT_KEY_EXPIRES TIDBIT_RECORD_ELEMENT_SEPARATOR "%ld\n", record->end_time);
for (GList* element_itter = record->elements; element_itter; element_itter = g_list_next(element_itter)){
PtrTidbitRecordElement element = element_itter->data;
- g_string_append_printf (rec_str, "%s:%s\n", element->key, element->value);
+ g_string_append_printf (rec_str, "%s" TIDBIT_RECORD_ELEMENT_SEPARATOR "%s\n", element->key, element->value);
}
record->signature = tidbit_key_sign_data (key, rec_str->str);
- g_string_append_printf (rec_str, TIDBIT_RECORD_ELEMENT_KEY_SIGNED ":%s\n", record->signature);
+ g_string_append_printf (rec_str, TIDBIT_RECORD_ELEMENT_KEY_SIGNED TIDBIT_RECORD_ELEMENT_SEPARATOR "%s\n", record->signature);
record->raw = g_string_free (rec_str, FALSE);
@@ -145,8 +147,12 @@ static gboolean tidbit_record_extract_pair_from_raw (char* data, char** rest, ch
if (!TIDBIT_RECORD_ELEMENT_KEY_CHAR_IS_VALID (data[i]))
return FALSE;
}
+
+ if (data[i+1] != ' ')
+ return FALSE;
+
*key = g_strndup (data, i);
- i++;
+ i += 2;
data = &data[i];
for (i=0; data[i] != '\n'; i++){
if (!TIDBIT_RECORD_ELEMENT_VALUE_CHAR_IS_VALID (data[i])){