Skip to content

Commit a787077

Browse files
authored
fix: ignore write filter in multicast for now (#960)
1 parent c788225 commit a787077

File tree

2 files changed

+10
-4
lines changed

2 files changed

+10
-4
lines changed

src/api/api.c

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1129,7 +1129,8 @@ z_result_t z_publisher_put(const z_loaned_publisher_t *pub, z_moved_bytes_t *pay
11291129
_z_bytes_t attachment_bytes = _z_bytes_from_moved(opt.attachment);
11301130

11311131
// Check if write filter is active before writing
1132-
if (!_z_write_filter_active(&pub->_filter)) {
1132+
if ((_Z_RC_IN_VAL(&pub->_zn)->_tp._type == _Z_TRANSPORT_MULTICAST_TYPE) ||
1133+
!_z_write_filter_active(&pub->_filter)) {
11331134
// Write value
11341135
ret = _z_write(session, pub_keyexpr, payload_bytes, &encoding, Z_SAMPLE_KIND_PUT, pub->_congestion_control,
11351136
pub->_priority, pub->_is_express, opt.timestamp, attachment_bytes, reliability, source_info);
@@ -1466,7 +1467,8 @@ z_result_t z_querier_get(const z_loaned_querier_t *querier, const char *paramete
14661467
}
14671468

14681469
if (session != NULL) {
1469-
if (_z_write_filter_active(&querier->_filter)) {
1470+
if (((_Z_RC_IN_VAL(&querier->_zn)->_tp._type == _Z_TRANSPORT_MULTICAST_TYPE)) &&
1471+
_z_write_filter_active(&querier->_filter)) {
14701472
callback->_this._val.drop(ctx);
14711473
} else {
14721474
_z_value_t value = {.payload = _z_bytes_from_moved(opt.payload), .encoding = encoding};

src/net/primitives.c

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -183,7 +183,9 @@ z_result_t _z_undeclare_publisher(_z_publisher_t *pub) {
183183
_z_matching_listener_entity_undeclare(_Z_RC_IN_VAL(&pub->_zn), pub->_id);
184184
#endif
185185
// Clear publisher
186-
_z_write_filter_destroy(_Z_RC_IN_VAL(&pub->_zn), &pub->_filter);
186+
if (_Z_RC_IN_VAL(&pub->_zn)->_tp._type == _Z_TRANSPORT_UNICAST_TYPE) {
187+
_z_write_filter_destroy(_Z_RC_IN_VAL(&pub->_zn), &pub->_filter);
188+
}
187189
_z_undeclare_resource(_Z_RC_IN_VAL(&pub->_zn), pub->_key._id);
188190
return _Z_RES_OK;
189191
}
@@ -547,7 +549,9 @@ z_result_t _z_undeclare_querier(_z_querier_t *querier) {
547549
#if Z_FEATURE_MATCHING == 1
548550
_z_matching_listener_entity_undeclare(_Z_RC_IN_VAL(&querier->_zn), querier->_id);
549551
#endif
550-
_z_write_filter_destroy(_Z_RC_IN_VAL(&querier->_zn), &querier->_filter);
552+
if (_Z_RC_IN_VAL(&querier->_zn)->_tp._type == _Z_TRANSPORT_UNICAST_TYPE) {
553+
_z_write_filter_destroy(_Z_RC_IN_VAL(&querier->_zn), &querier->_filter);
554+
}
551555
_z_undeclare_resource(_Z_RC_IN_VAL(&querier->_zn), querier->_key._id);
552556
return _Z_RES_OK;
553557
}

0 commit comments

Comments
 (0)