aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/mesh/gnunet-service-mesh_peer.c21
1 files changed, 4 insertions, 17 deletions
diff --git a/src/mesh/gnunet-service-mesh_peer.c b/src/mesh/gnunet-service-mesh_peer.c
index 4102e19b0..569eda84b 100644
--- a/src/mesh/gnunet-service-mesh_peer.c
+++ b/src/mesh/gnunet-service-mesh_peer.c
@@ -1885,32 +1885,19 @@ GMP_get_tunnel (const struct MeshPeer *peer)
1885void 1885void
1886GMP_set_hello (struct MeshPeer *peer, const struct GNUNET_HELLO_Message *hello) 1886GMP_set_hello (struct MeshPeer *peer, const struct GNUNET_HELLO_Message *hello)
1887{ 1887{
1888 struct GNUNET_TIME_Absolute expiration; 1888 struct GNUNET_HELLO_Message *old;
1889 struct GNUNET_TIME_Relative remaining;
1890 size_t size; 1889 size_t size;
1891 1890
1892 if (NULL == peer->hello) 1891 old = GMP_get_hello (peer);
1892 if (NULL == old)
1893 { 1893 {
1894 size = GNUNET_HELLO_size (hello); 1894 size = GNUNET_HELLO_size (hello);
1895 peer->hello = GNUNET_malloc (size); 1895 peer->hello = GNUNET_malloc (size);
1896 memcpy (peer->hello, hello, size); 1896 memcpy (peer->hello, hello, size);
1897 return; 1897 return;
1898 } 1898 }
1899
1900 expiration = GNUNET_HELLO_get_last_expiration (peer->hello);
1901 remaining = GNUNET_TIME_absolute_get_remaining (expiration);
1902 if (0 == remaining.rel_value_us)
1903 {
1904 GNUNET_free (peer->hello);
1905 size = GNUNET_HELLO_size (hello);
1906 peer->hello = GNUNET_malloc (size);
1907 memcpy (peer->hello, hello, size);
1908 }
1909 else 1899 else
1910 { 1900 {
1911 struct GNUNET_HELLO_Message *old;
1912
1913 old = peer->hello;
1914 peer->hello = GNUNET_HELLO_merge (old, hello); 1901 peer->hello = GNUNET_HELLO_merge (old, hello);
1915 GNUNET_free (old); 1902 GNUNET_free (old);
1916 } 1903 }
@@ -1932,7 +1919,7 @@ GMP_get_hello (struct MeshPeer *peer)
1932 1919
1933 if (NULL == peer->hello) 1920 if (NULL == peer->hello)
1934 return NULL; 1921 return NULL;
1935 1922
1936 expiration = GNUNET_HELLO_get_last_expiration (peer->hello); 1923 expiration = GNUNET_HELLO_get_last_expiration (peer->hello);
1937 remaining = GNUNET_TIME_absolute_get_remaining (expiration); 1924 remaining = GNUNET_TIME_absolute_get_remaining (expiration);
1938 if (0 == remaining.rel_value_us) 1925 if (0 == remaining.rel_value_us)