Skip to content

Commit 59776e8

Browse files
committed
Fix tx from unix socket in mirroring mode
1 parent 3648da9 commit 59776e8

File tree

1 file changed

+14
-5
lines changed

1 file changed

+14
-5
lines changed

src/tx.cpp

Lines changed: 14 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1398,7 +1398,7 @@ void local_loop(int argc, char* const* argv, int optind, int rcv_buf, int log_in
13981398
data_source(t, rx_fd, control_fd, fec_timeout, mirror, log_interval);
13991399
}
14001400

1401-
void local_loop_unix(const char *wlan, int rcv_buf, int log_interval,
1401+
void local_loop_unix(int argc, char* const* argv, int optind, int rcv_buf, int log_interval,
14021402
const char *unix_socket, int debug_port, int k, int n, const string &keypair, int fec_timeout,
14031403
uint64_t epoch, uint32_t channel_id, uint32_t fec_delay, bool use_qdisc, uint32_t fwmark,
14041404
radiotap_header_t &radiotap_header, uint8_t frame_type, int control_port, bool mirror)
@@ -1410,10 +1410,19 @@ void local_loop_unix(const char *wlan, int rcv_buf, int log_interval,
14101410

14111411
int fd = open_unix_socket_for_rx(unix_socket, rcv_buf);
14121412

1413-
WFB_INFO("Listen on @%s for %s\n", unix_socket, wlan);
1414-
14151413
rx_fd.push_back(fd);
1416-
wlans.push_back(string(wlan));
1414+
1415+
for(int i = 0; optind + i < argc; i++)
1416+
{
1417+
char* wlan = argv[optind + i];
1418+
WFB_INFO("Listen on @%s for %s\n", unix_socket, wlan);
1419+
wlans.push_back(string(wlan));
1420+
}
1421+
1422+
if(!mirror && wlans.size() > 1)
1423+
{
1424+
throw runtime_error("Multiple cards for unix socket source only supported with mirroring mode!");
1425+
}
14171426

14181427
if (debug_port)
14191428
{
@@ -1705,7 +1714,7 @@ int main(int argc, char * const *argv)
17051714
break;
17061715

17071716
case LOCAL_UNIX:
1708-
local_loop_unix(argv[optind], rcv_buf, log_interval,
1717+
local_loop_unix(argc, argv, optind, rcv_buf, log_interval,
17091718
unix_socket, debug_port, k, n, keypair, fec_timeout,
17101719
epoch, channel_id, fec_delay, use_qdisc, fwmark,
17111720
radiotap_header, frame_type, control_port, mirror);

0 commit comments

Comments
 (0)