Sign Up
Log In
Log In
or
Sign Up
Places
All Projects
Status Monitor
Collapse sidebar
devel:libraries:c_c++
zyre
0001-Problem-can-t-build-on-czmq-4.patch
Overview
Repositories
Revisions
Requests
Users
Attributes
Meta
File 0001-Problem-can-t-build-on-czmq-4.patch of Package zyre
From 5b86c78a8be76ef49fffd413ccdb3d1992448387 Mon Sep 17 00:00:00 2001 From: Michal Vyskocil <michalvyskocil@eaton.com> Date: Sat, 5 Nov 2016 15:22:50 +0100 Subject: [PATCH] Problem: can't build on czmq 4 Solution: do not use removed zhash_foreach, butr zhash_first/zhash_next --- src/zyre_event.c | 10 ++++++-- src/zyre_group.c | 8 +++++- src/zyre_node.c | 67 +++++++++++++++++++++++++++++++++++++++++++++++-------- 3 files changed, 73 insertions(+), 12 deletions(-) Index: zyre-1.2.0/src/zyre_event.c =================================================================== --- zyre-1.2.0.orig/src/zyre_event.c +++ zyre-1.2.0/src/zyre_event.c @@ -131,7 +131,7 @@ zyre_event_destroy (zyre_event_t **self_ } static int -zyre_event_log_pair (const char *key, void *item, void *argument) +zyre_event_log_pair (const char *key, void *item) { zsys_info (" - %s: %s", key, (const char *)item); return 0; @@ -150,7 +150,13 @@ zyre_event_print (zyre_event_t *self) case ZYRE_EVENT_ENTER: zsys_info (" - type=ENTER"); zsys_info (" - headers=%zu:", zhash_size (self->headers)); - zhash_foreach (self->headers, (zhash_foreach_fn *) zyre_event_log_pair, self); + void *value = zhash_first (self->headers); + while (value) + { + const char *key = zhash_cursor (self->headers); + zyre_event_log_pair (key, value); + value = zhash_first (self->headers); + } zsys_info (" - address=%s", zyre_event_address(self)); break; Index: zyre-1.2.0/src/zyre_group.c =================================================================== --- zyre-1.2.0.orig/src/zyre_group.c +++ zyre-1.2.0/src/zyre_group.c @@ -114,7 +114,13 @@ void zyre_group_send (zyre_group_t *self, zre_msg_t **msg_p) { assert (self); - zhash_foreach (self->peers, (zhash_foreach_fn *) s_peer_send, *msg_p); + void *value = zhash_first (self->peers); + while (value) + { + const char *key = zhash_cursor (self->peers); + s_peer_send (key, value, *msg_p); + value = zhash_first (self->peers); + } zre_msg_destroy (msg_p); } Index: zyre-1.2.0/src/zyre_node.c =================================================================== --- zyre-1.2.0.orig/src/zyre_node.c +++ zyre-1.2.0/src/zyre_node.c @@ -244,7 +244,7 @@ zyre_node_stop (zyre_node_t *self) } -// Send message to one peer; called via zhash_foreach +// Send message to one peer static int zyre_node_send_peer (const char *key, void *item, void *argument) @@ -291,13 +291,31 @@ zyre_node_dump (zyre_node_t *self) zsys_info (" - connect endpoint=%s", self->gossip_connect); } zsys_info (" - headers=%zu:", zhash_size (self->headers)); - zhash_foreach (self->headers, (zhash_foreach_fn *) zyre_node_log_pair, self); + void *value = zhash_first (self->headers); + while (value) + { + const char *key = zhash_cursor (self->headers); + zyre_node_log_pair (key, value, self); + value = zhash_first (self->headers); + } zsys_info (" - peers=%zu:", zhash_size (self->peers)); - zhash_foreach (self->peers, (zhash_foreach_fn *) zyre_node_log_item, self); + value = zhash_first (self->peers); + while (value) + { + const char *key = zhash_cursor (self->peers); + zyre_node_log_item (key, value, self); + value = zhash_first (self->peers); + } zsys_info (" - groups=%zu:", zhash_size (self->own_groups)); - zhash_foreach (self->own_groups, (zhash_foreach_fn *) zyre_node_log_item, self); + value = zhash_first (self->own_groups); + while (value) + { + const char *key = zhash_cursor (self->own_groups); + zyre_node_log_item (key, value, self); + value = zhash_first (self->own_groups); + } } @@ -419,7 +437,13 @@ zyre_node_recv_api (zyre_node_t *self) zre_msg_set_group (msg, name); // Update status before sending command zre_msg_set_status (msg, ++(self->status)); - zhash_foreach (self->peers, (zhash_foreach_fn *) zyre_node_send_peer, msg); + void *value = zhash_first (self->peers); + while (value) + { + const char *key = zhash_cursor (self->peers); + zyre_node_send_peer (key, value, msg); + value = zhash_first (self->peers); + } zre_msg_destroy (&msg); if (self->verbose) zsys_info ("(%s) JOIN group=%s", self->name, name); @@ -436,7 +460,13 @@ zyre_node_recv_api (zyre_node_t *self) zre_msg_set_group (msg, name); // Update status before sending command zre_msg_set_status (msg, ++(self->status)); - zhash_foreach (self->peers, (zhash_foreach_fn *) zyre_node_send_peer, msg); + void *value = zhash_first (self->peers); + while (value) + { + const char *key = zhash_cursor (self->peers); + zyre_node_send_peer (key, value, msg); + value = zhash_first (self->peers); + } zre_msg_destroy (&msg); zhash_delete (self->own_groups, name); if (self->verbose) @@ -518,7 +548,13 @@ zyre_node_require_peer (zyre_node_t *sel zyre_peer_t *peer = (zyre_peer_t *) zhash_lookup (self->peers, zuuid_str (uuid)); if (!peer) { // Purge any previous peer on same endpoint - zhash_foreach (self->peers, (zhash_foreach_fn *) zyre_node_purge_peer, (char *) endpoint); + void *value = zhash_first (self->peers); + while (value) + { + const char *key = zhash_cursor (self->peers); + zyre_node_purge_peer (key, value, (char*) endpoint); + value = zhash_first (self->peers); + } peer = zyre_peer_new (self->peers, uuid); assert (peer); @@ -567,7 +603,14 @@ zyre_node_remove_peer (zyre_node_t *self self->name, zyre_peer_name (peer), zyre_peer_endpoint (peer)); // Remove peer from any groups we've got it in - zhash_foreach (self->peer_groups, (zhash_foreach_fn *) zyre_node_delete_peer, peer); + void *value = zhash_first (self->peer_groups); + while (value) + { + const char *key = zhash_cursor (self->peer_groups); + zyre_node_delete_peer (key, value, peer); + value = zhash_first (self->peer_groups); + } + // To destroy peer, we remove from peers hash table zhash_delete (self->peers, zyre_peer_identity (peer)); } @@ -902,7 +945,13 @@ zyre_node_actor (zsock_t *pipe, void *ar if (zclock_mono () >= reap_at) { reap_at = zclock_mono () + REAP_INTERVAL; // Ping all peers and reap any expired ones - zhash_foreach (self->peers, (zhash_foreach_fn *) zyre_node_ping_peer, self); + void *value = zhash_first (self->peers); + while (value) + { + const char *key = zhash_cursor (self->peers); + zyre_node_ping_peer (key, value, self); + value = zhash_first (self->peers); + } } } }
Locations
Projects
Search
Status Monitor
Help
OpenBuildService.org
Documentation
API Documentation
Code of Conduct
Contact
Support
@OBShq
Terms
openSUSE Build Service is sponsored by
The Open Build Service is an
openSUSE project
.
Sign Up
Log In
Places
Places
All Projects
Status Monitor