diff options
Diffstat (limited to 'foreign/openpgm/create_custom_gsi_1.patch')
-rw-r--r-- | foreign/openpgm/create_custom_gsi_1.patch | 43 |
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 + |