summaryrefslogtreecommitdiff
path: root/foreign/openpgm/create_custom_gsi_1.patch
diff options
context:
space:
mode:
Diffstat (limited to 'foreign/openpgm/create_custom_gsi_1.patch')
-rw-r--r--foreign/openpgm/create_custom_gsi_1.patch43
1 files changed, 43 insertions, 0 deletions
diff --git a/foreign/openpgm/create_custom_gsi_1.patch b/foreign/openpgm/create_custom_gsi_1.patch
new file mode 100644
index 0000000..2e709f1
--- /dev/null
+++ b/foreign/openpgm/create_custom_gsi_1.patch
@@ -0,0 +1,43 @@
+--- foreign/openpgm/libpgm-1.2.14/openpgm/pgm/include/pgm/gsi.h 2009-08-27 04:53:23.000000000 +0200
++++ foreign/openpgm/libpgm-1.2.14/openpgm/pgm/include/pgm/gsi.h 2009-10-05 09:29:21.765126004 +0200
+@@ -42,6 +42,7 @@
+
+ int pgm_create_md5_gsi (pgm_gsi_t*);
+ int pgm_create_ipv4_gsi (pgm_gsi_t*);
++int pgm_create_custom_gsi (const char *string_, pgm_gsi_t*);
+
+ int pgm_print_gsi_r (const pgm_gsi_t*, char*, gsize);
+ gchar* pgm_print_gsi (const pgm_gsi_t*);
+
+--- foreign/openpgm/libpgm-1.2.14/openpgm/pgm/gsi.c 2009-08-27 04:53:25.000000000 +0200
++++ foreign/openpgm/libpgm-1.2.14/openpgm/pgm/gsi.c 2009-10-05 09:28:47.113125069 +0200
+@@ -430,6 +430,28 @@
+ return retval;
+ }
+
++/* create a global session ID as low order 48 bits of md5 of the string. */
++int
++pgm_create_custom_gsi (
++ const char *string_,
++ pgm_gsi_t* gsi_
++ )
++{
++ g_return_val_if_fail (gsi_ != NULL, -EINVAL);
++
++ struct md5_ctx ctx;
++ char resblock [16];
++
++ md5_init_ctx (&ctx);
++ md5_process_bytes (string_, strlen (string_), &ctx);
++ md5_finish_ctx (&ctx, resblock);
++
++ memcpy (gsi_, resblock + 10, 6);
++
++ return 0;
++}
++
++
+ /* re-entrant form of pgm_print_gsi()
+ */
+ int
+