summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCharlie Brej <cbrej@cs.man.ac.uk>2010-08-02 22:08:38 +0100
committerCharlie Brej <cbrej@cs.man.ac.uk>2010-08-02 22:08:38 +0100
commit0dc063f5cae12bacd3c44b8bdcf271fa015f85b9 (patch)
tree721e393f668135d7de097bb4ba052bd1a142045a
parente9eb91b95128e4063200e8875427417c024cf6e3 (diff)
Add a header to raw records with a version number
-rw-r--r--src/libtidbit/tidbit-record.c8
1 files changed, 8 insertions, 0 deletions
diff --git a/src/libtidbit/tidbit-record.c b/src/libtidbit/tidbit-record.c
index fb2ea4f..2af6944 100644
--- a/src/libtidbit/tidbit-record.c
+++ b/src/libtidbit/tidbit-record.c
@@ -41,6 +41,10 @@
#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)
+#define TIDBIT_RECORD_HEADER_V0_1 "TIDBIT/0.1"
+
+#define TIDBIT_RECORD_HEADER TIDBIT_RECORD_HEADER_V0_1
+
static PtrTidbitRecord tidbit_record_new_raw (void)
{
PtrTidbitRecord record = g_new(TidbitRecord, 1);
@@ -116,6 +120,7 @@ void tidbit_record_sign (PtrTidbitRecord record, PtrTidbitKey key)
g_assert(record->status == TIDBIT_RECORD_STATUS_NEW);
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 (rec_str, TIDBIT_RECORD_HEADER "\n");
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);
@@ -177,6 +182,9 @@ PtrTidbitRecord tidbit_record_from_raw (char* raw)
PtrTidbitRecord record = tidbit_record_new_raw ();
record->raw = g_strdup(raw);
+ g_str_has_prefix(data, TIDBIT_RECORD_HEADER "\n");
+ data += strlen(TIDBIT_RECORD_HEADER "\n");
+
if (!tidbit_record_extract_pair_from_raw (data, &data, &key, &value))
return record;
if (!g_str_equal(key, TIDBIT_RECORD_ELEMENT_KEY_USERKEY))