Skip to content

Commit 1b0d938

Browse files
committed
Simplify discovery_peer_connect: single pass over subscriptions
1 parent 2fe0c92 commit 1b0d938

1 file changed

Lines changed: 9 additions & 15 deletions

File tree

src/discovery.cpp

Lines changed: 9 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -139,23 +139,17 @@ int discovery_peer_connect(bacaro_t *self, const std::string &filename)
139139
// ── Lazy DEALER: only create if subscriptions overlap with manifest ─
140140
if (!self->subscriptions.empty()) {
141141
auto &peer = self->peers[filename];
142-
bool needs_dealer = false;
143142
for (const auto &prefix : self->subscriptions) {
144-
if (manifest_overlaps(peer, prefix)) {
145-
needs_dealer = true;
146-
break;
147-
}
148-
}
149-
150-
if (needs_dealer) {
151-
if (discovery_ensure_dealer(self, filename, peer) != BACARO_OK) {
152-
zmq_disconnect(self->sub_sock, pub_ep.c_str());
153-
self->peers.erase(filename);
154-
return BACARO_EZMQ;
143+
if (!manifest_overlaps(peer, prefix))
144+
continue;
145+
if (!peer.dealer_sock) {
146+
if (discovery_ensure_dealer(self, filename, peer) != BACARO_OK) {
147+
zmq_disconnect(self->sub_sock, pub_ep.c_str());
148+
self->peers.erase(filename);
149+
return BACARO_EZMQ;
150+
}
155151
}
156-
157-
for (const auto &prefix : self->subscriptions)
158-
snapshot_send_request(peer.dealer_sock, prefix);
152+
snapshot_send_request(peer.dealer_sock, prefix);
159153
}
160154
}
161155

0 commit comments

Comments
 (0)