Skip to content

Commit a2a14a3

Browse files
committed
fix: raweth & single thread compilation issues
1 parent e0ba4b6 commit a2a14a3

File tree

5 files changed

+42
-42
lines changed

5 files changed

+42
-42
lines changed

src/system/unix/link/raweth.c

+3-2
Original file line numberDiff line numberDiff line change
@@ -96,7 +96,7 @@ size_t _z_receive_raweth(const _z_sys_net_socket_t *sock, void *buff, size_t buf
9696
const _zp_raweth_whitelist_array_t *whitelist) {
9797
// Read from socket
9898
ssize_t bytesRead = recvfrom(sock->_fd, buff, buff_len, 0, NULL, NULL);
99-
if ((bytesRead < 0) || (bytesRead < sizeof(_zp_eth_header_t))) {
99+
if ((bytesRead < 0) || (bytesRead < (ssize_t)sizeof(_zp_eth_header_t))) {
100100
return SIZE_MAX;
101101
}
102102
_Bool is_valid = true;
@@ -118,8 +118,9 @@ size_t _z_receive_raweth(const _z_sys_net_socket_t *sock, void *buff, size_t buf
118118
}
119119
// Copy sender mac if needed
120120
if (addr != NULL) {
121+
uint8_t *header_addr = (uint8_t *)buff;
121122
*addr = _z_slice_make(sizeof(ETH_ALEN));
122-
(void)memcpy((uint8_t *)addr->start, (buff + ETH_ALEN), sizeof(ETH_ALEN));
123+
(void)memcpy((uint8_t *)addr->start, (header_addr + ETH_ALEN), sizeof(ETH_ALEN));
123124
}
124125
return bytesRead;
125126
}

src/transport/multicast/lease.c

+31-31
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,37 @@
2323

2424
#if Z_FEATURE_MULTICAST_TRANSPORT == 1 || Z_FEATURE_RAWETH_TRANSPORT == 1
2525

26+
int8_t _zp_multicast_send_join(_z_transport_multicast_t *ztm) {
27+
_z_conduit_sn_list_t next_sn;
28+
next_sn._is_qos = false;
29+
next_sn._val._plain._best_effort = ztm->_sn_tx_best_effort;
30+
next_sn._val._plain._reliable = ztm->_sn_tx_reliable;
31+
32+
_z_id_t zid = ((_z_session_t *)ztm->_session)->_local_zid;
33+
_z_transport_message_t jsm = _z_t_msg_make_join(Z_WHATAMI_PEER, Z_TRANSPORT_LEASE, zid, next_sn);
34+
35+
return ztm->_send_f(ztm, &jsm);
36+
}
37+
38+
int8_t _zp_multicast_send_keep_alive(_z_transport_multicast_t *ztm) {
39+
_z_transport_message_t t_msg = _z_t_msg_make_keep_alive();
40+
return ztm->_send_f(ztm, &t_msg);
41+
}
42+
43+
#else
44+
int8_t _zp_multicast_send_join(_z_transport_multicast_t *ztm) {
45+
_ZP_UNUSED(ztm);
46+
return _Z_ERR_TRANSPORT_NOT_AVAILABLE;
47+
}
48+
49+
int8_t _zp_multicast_send_keep_alive(_z_transport_multicast_t *ztm) {
50+
_ZP_UNUSED(ztm);
51+
return _Z_ERR_TRANSPORT_NOT_AVAILABLE;
52+
}
53+
#endif // Z_FEATURE_MULTICAST_TRANSPORT == 1 || Z_FEATURE_RAWETH_TRANSPORT == 1
54+
55+
#if Z_FEATURE_MULTI_THREAD == 1 && (Z_FEATURE_MULTICAST_TRANSPORT == 1 || Z_FEATURE_RAWETH_TRANSPORT == 1)
56+
2657
static _z_zint_t _z_get_minimum_lease(_z_transport_peer_entry_list_t *peers, _z_zint_t local_lease) {
2758
_z_zint_t ret = local_lease;
2859

@@ -57,37 +88,6 @@ static _z_zint_t _z_get_next_lease(_z_transport_peer_entry_list_t *peers) {
5788
return ret;
5889
}
5990

60-
int8_t _zp_multicast_send_join(_z_transport_multicast_t *ztm) {
61-
_z_conduit_sn_list_t next_sn;
62-
next_sn._is_qos = false;
63-
next_sn._val._plain._best_effort = ztm->_sn_tx_best_effort;
64-
next_sn._val._plain._reliable = ztm->_sn_tx_reliable;
65-
66-
_z_id_t zid = ((_z_session_t *)ztm->_session)->_local_zid;
67-
_z_transport_message_t jsm = _z_t_msg_make_join(Z_WHATAMI_PEER, Z_TRANSPORT_LEASE, zid, next_sn);
68-
69-
return ztm->_send_f(ztm, &jsm);
70-
}
71-
72-
int8_t _zp_multicast_send_keep_alive(_z_transport_multicast_t *ztm) {
73-
_z_transport_message_t t_msg = _z_t_msg_make_keep_alive();
74-
return ztm->_send_f(ztm, &t_msg);
75-
}
76-
77-
#else
78-
int8_t _zp_multicast_send_join(_z_transport_multicast_t *ztm) {
79-
_ZP_UNUSED(ztm);
80-
return _Z_ERR_TRANSPORT_NOT_AVAILABLE;
81-
}
82-
83-
int8_t _zp_multicast_send_keep_alive(_z_transport_multicast_t *ztm) {
84-
_ZP_UNUSED(ztm);
85-
return _Z_ERR_TRANSPORT_NOT_AVAILABLE;
86-
}
87-
#endif // Z_FEATURE_MULTICAST_TRANSPORT == 1 || Z_FEATURE_RAWETH_TRANSPORT == 1
88-
89-
#if Z_FEATURE_MULTI_THREAD == 1 && (Z_FEATURE_MULTICAST_TRANSPORT == 1 || Z_FEATURE_RAWETH_TRANSPORT == 1)
90-
9191
void *_zp_multicast_lease_task(void *ztm_arg) {
9292
_z_transport_multicast_t *ztm = (_z_transport_multicast_t *)ztm_arg;
9393
ztm->_transmitted = false;

src/transport/raweth/link.c

+3-4
Original file line numberDiff line numberDiff line change
@@ -170,7 +170,7 @@ static int8_t _z_get_mapping_raweth(_z_str_intmap_t *config, _zp_raweth_mapping_
170170
return _Z_RES_OK;
171171
}
172172

173-
static const size_t _z_valid_whitelist_raweth(_z_str_intmap_t *config) {
173+
static size_t _z_valid_whitelist_raweth(_z_str_intmap_t *config) {
174174
// Retrieve data
175175
const char *cfg_str = _z_str_intmap_get(config, RAWETH_CONFIG_WHITELIST_KEY);
176176
if (cfg_str == NULL) {
@@ -314,13 +314,13 @@ static _Bool _z_valid_address_raweth(const char *address) {
314314
return false;
315315
}
316316
// Check if the colons are at the correct positions
317-
for (int i = 2; i < len; i += 3) {
317+
for (size_t i = 2; i < len; i += 3) {
318318
if (address[i] != ':') {
319319
return false;
320320
}
321321
}
322322
// Check if each character is a valid hexadecimal digit
323-
for (int i = 0; i < len; ++i) {
323+
for (size_t i = 0; i < len; ++i) {
324324
if (i % 3 != 2) {
325325
char c = address[i];
326326
if (!((c >= '0' && c <= '9') || (c >= 'A' && c <= 'F') || (c >= 'a' && c <= 'f'))) {
@@ -332,7 +332,6 @@ static _Bool _z_valid_address_raweth(const char *address) {
332332
}
333333

334334
static uint8_t *_z_parse_address_raweth(const char *address) {
335-
size_t len = strlen(address);
336335
// Allocate data
337336
uint8_t *ret = (uint8_t *)z_malloc(_ZP_MAC_ADDR_LENGTH);
338337
if (ret == NULL) {

src/transport/raweth/rx.c

+3-3
Original file line numberDiff line numberDiff line change
@@ -47,9 +47,9 @@ static size_t _z_raweth_link_recv_zbuf(const _z_link_t *link, _z_zbuf_t *zbf, _z
4747
}
4848
size_t data_length = 0;
4949
if (has_vlan) {
50-
_zp_eth_vlan_header_t *header = (_zp_eth_vlan_header_t *)buff;
50+
_zp_eth_vlan_header_t *vlan_header = (_zp_eth_vlan_header_t *)buff;
5151
// Retrieve data length
52-
data_length = _z_raweth_ntohs(header->data_length);
52+
data_length = _z_raweth_ntohs(vlan_header->data_length);
5353
if (rb < (data_length + sizeof(_zp_eth_vlan_header_t))) {
5454
// Invalid data_length
5555
return SIZE_MAX;
@@ -58,7 +58,7 @@ static size_t _z_raweth_link_recv_zbuf(const _z_link_t *link, _z_zbuf_t *zbf, _z
5858
_z_zbuf_set_wpos(zbf, _z_zbuf_get_wpos(zbf) + sizeof(_zp_eth_vlan_header_t) + data_length);
5959
_z_zbuf_set_rpos(zbf, _z_zbuf_get_rpos(zbf) + sizeof(_zp_eth_vlan_header_t));
6060
} else {
61-
_zp_eth_header_t *header = (_zp_eth_header_t *)buff;
61+
header = (_zp_eth_header_t *)buff;
6262
// Retrieve data length
6363
data_length = _z_raweth_ntohs(header->data_length);
6464
if (rb < (data_length + sizeof(_zp_eth_header_t))) {

src/transport/raweth/tx.c

+2-2
Original file line numberDiff line numberDiff line change
@@ -37,13 +37,13 @@ static void _zp_raweth_unlock_tx_mutex(_z_transport_multicast_t *ztm) { _ZP_UNUS
3737
#endif
3838

3939
static int _zp_raweth_find_map_entry(const _z_keyexpr_t *keyexpr, _z_raweth_socket_t *sock) {
40-
for (int i = 0; i < _zp_raweth_mapping_array_len(&sock->_mapping); i++) {
40+
for (size_t i = 0; i < _zp_raweth_mapping_array_len(&sock->_mapping); i++) {
4141
// Find matching keyexpr
4242
const _zp_raweth_mapping_entry_t *entry = _zp_raweth_mapping_array_get(&sock->_mapping, i);
4343
if (zp_keyexpr_intersect_null_terminated(keyexpr->_suffix, entry->_keyexpr._suffix) != _Z_RES_OK) {
4444
continue;
4545
}
46-
return i;
46+
return (int)i;
4747
}
4848
return -1;
4949
}

0 commit comments

Comments
 (0)