diff options
Diffstat (limited to '3rdparty/openpgm-svn-r1135/pgm/gsi.c.c89.patch')
-rw-r--r-- | 3rdparty/openpgm-svn-r1135/pgm/gsi.c.c89.patch | 53 |
1 files changed, 53 insertions, 0 deletions
diff --git a/3rdparty/openpgm-svn-r1135/pgm/gsi.c.c89.patch b/3rdparty/openpgm-svn-r1135/pgm/gsi.c.c89.patch new file mode 100644 index 0000000..b7edc28 --- /dev/null +++ b/3rdparty/openpgm-svn-r1135/pgm/gsi.c.c89.patch @@ -0,0 +1,53 @@ +--- gsi.c 2010-08-04 11:14:59.000000000 +0800 ++++ gsi.c89 2010-08-04 11:16:29.000000000 +0800 +@@ -54,12 +54,14 @@ + memcpy (gsi, g_checksum_get_string (checksum) + 10, 6); + g_checksum_free (checksum); + #else ++ { + struct pgm_md5_t ctx; + char resblock[16]; + pgm_md5_init_ctx (&ctx); + pgm_md5_process_bytes (&ctx, data, length); + pgm_md5_finish_ctx (&ctx, resblock); + memcpy (gsi, resblock + 10, 6); ++ } + #endif + return TRUE; + } +@@ -94,6 +96,7 @@ + { + pgm_return_val_if_fail (NULL != gsi, FALSE); + ++ { + char hostname[NI_MAXHOST]; + int retval = gethostname (hostname, sizeof(hostname)); + if (0 != retval) { +@@ -111,6 +114,7 @@ + } + + return pgm_gsi_create_from_string (gsi, hostname, -1); ++ } + } + + /* create a global session ID based on the IP address. +@@ -129,6 +133,7 @@ + + pgm_return_val_if_fail (NULL != gsi, FALSE); + ++ { + int retval = gethostname (hostname, sizeof(hostname)); + if (0 != retval) { + pgm_set_error (error, +@@ -157,8 +162,11 @@ + } + memcpy (gsi, &((struct sockaddr_in*)(res->ai_addr))->sin_addr, sizeof(struct in_addr)); + freeaddrinfo (res); ++ { + const uint16_t random_val = pgm_random_int_range (0, UINT16_MAX); + memcpy ((uint8_t*)gsi + sizeof(struct in_addr), &random_val, sizeof(random_val)); ++ } ++ } + return TRUE; + } + |