diff options
author | Charlie Brej <cbrej@cs.man.ac.uk> | 2010-08-02 15:20:18 +0100 |
---|---|---|
committer | Charlie Brej <cbrej@cs.man.ac.uk> | 2010-08-02 15:20:18 +0100 |
commit | 4f920a31312b19fb8f2314a152dc4555c8400001 (patch) | |
tree | b57b512ee5a0d7ce82fc24ac3d42dcb962f5217c | |
parent | 1854f612acc88c4f574c663dc91bf051bf9175a0 (diff) |
Change the record key value pair separator to a ": " like in HTTP
-rw-r--r-- | src/libtidbit/tidbit-record.c | 20 |
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])){ |