Commit Graph

72 Commits

Author SHA1 Message Date
Michael Davidsaver 8333ce30ec re-define user bufferevent limits in terms of OS buffer size 2022-10-14 10:20:51 -07:00
Michael Davidsaver 06f1a8c2db fix Timer ownership 2022-10-14 10:20:51 -07:00
Michael Davidsaver e809da219d evsocket::ipstack 2022-04-05 07:57:16 -07:00
Michael Davidsaver 1be0477ee6 evsocket::canIPv6 once 2022-04-05 07:57:16 -07:00
Michael Davidsaver 8fb7956ca1 evsocket::bind() 2022-04-05 07:57:16 -07:00
Michael Davidsaver 8e56972dbc testsock check bind() order behavior for ipv4/6 2022-04-05 07:57:16 -07:00
Michael Davidsaver df4289b4e6 IPv6+mcast support 2022-04-05 07:57:16 -07:00
Michael Davidsaver 923c423055 epicsThreadOnce() wrapper
Ensure exceptions are propagated
2022-04-05 07:57:16 -07:00
Michael Davidsaver 290b565203 minor 2022-04-05 07:57:16 -07:00
Michael Davidsaver f67f27e96b Portable capture of destination interface and IP address
Use recvmsg() and control messages IP_PKTINFO (Linux, OSX, Windows)
or IP_ORIGDSTADDR and IP_RECVIF (RTEMS w/ libbsd) to find the
index of the logical interface through which a UDP packet was received,
and the destination address from the IPv4 header.

Also, clear IP_MULTICAST_ALL on Linux to disable non-compliant legacy brokenness
and receive only those multicasts we are interested in.
2022-04-05 07:57:16 -07:00
Michael Davidsaver f749b5ee39 minor cppcheck 2021-10-28 10:04:25 -07:00
Michael Davidsaver d811d5e17a minor 2021-08-30 13:54:12 -07:00
Michael Davidsaver d6bf565ed6 rename interfaces() -> broadcasts() 2021-08-04 17:26:10 -07:00
Michael Davidsaver dfbed0c850 server ExecOp timer 2021-07-17 08:22:25 -07:00
Michael Davidsaver 49c16e8d6a minor 2021-07-16 12:20:51 -07:00
Michael Davidsaver f8cdcd4f91 RTEMS5/libbsd support 2021-06-27 10:17:14 -07:00
Michael Davidsaver e63b9155de minor 2021-06-27 10:17:14 -07:00
Michael Davidsaver 1e08b6faf0 instance counter for # of live workers 2021-06-27 10:17:13 -07:00
Michael Davidsaver bcc46f0389 workaround limitations of moving std::function<void()> 2021-06-27 10:17:13 -07:00
Michael Davidsaver bd6fb00dd5 evhelper external/internal 2021-06-27 10:17:13 -07:00
Michael Davidsaver fb7abfc132 sockets O_CLOEXEC 2021-01-29 15:17:29 -08:00
Michael Davidsaver 76764cf978 xcode: capture file:line of fault() 2021-01-12 11:32:10 -08:00
Michael Davidsaver 785e180f9b evhelper: ensure work dtor before notify
Ensure that work std::function, and any bound variables,
are destroyed before completion notification.
2020-12-29 12:52:54 -08:00
Michael Davidsaver 178fbebb89 evhelper: loop self-join is crit 2020-12-29 12:52:54 -08:00
Michael Davidsaver a051c27877 evbase constify 2020-12-29 12:52:54 -08:00
Michael Davidsaver 0395982691 add evsocket::interfaces() wrapper 2020-12-13 15:49:43 -08:00
Michael Davidsaver edce454dc7 avoid unnecesary copies 2020-08-10 12:09:55 -07:00
Michael Davidsaver 33b6f362db client: Handle orphaned Operations
Allow Operation instances to outlive
the Context through which they were
created.
2020-08-10 12:09:55 -07:00
Michael Davidsaver c8f72f5319 detect attempt to call() into inactive loop 2020-08-10 12:09:55 -07:00
Michael Davidsaver 69efc4b8a9 minor 2020-05-22 09:17:22 -07:00
Michael Davidsaver add99065e9 thread_local -> ThreadEvent
at least GLIBC runs TLS dtors before atexit() callbacks
on exit() or return from main().

Use epicsThreadPrivate which doesn't cleanup locals for main().
2020-04-25 14:40:43 -07:00
Klemen Vodopivec 02f24a74e7 Made it build on EPICS 3.14.12.6, all unit tests pass. 2020-04-16 22:01:38 -07:00
Michael Davidsaver f1cc5a2aa6 minor thread_local 2020-04-13 18:06:40 -07:00
Michael Davidsaver b0eecb949f fixup client operation object lifetime 2020-04-12 23:29:30 -07:00
Michael Davidsaver 29c837e7ed maybe self-join? 2020-04-12 22:30:30 -07:00
Michael Davidsaver d852758b7b client: ensure worker is joined on close() 2020-04-07 12:05:28 -07:00
Michael Davidsaver facb18ae00 Add log_exc_printf() with stack trace 2020-04-03 11:58:23 -07:00
Michael Davidsaver e2513db4d9 MSVC need osiSockAttach() 2020-03-31 13:07:50 -07:00
Michael Davidsaver 36dc71a158 MSVC missing includes 2020-03-31 13:07:50 -07:00
Michael Davidsaver fd11d382e7 minor 2020-03-24 15:33:52 -07:00
Michael Davidsaver d52272e148 fix EvInBuf::refill() 2020-03-23 21:39:33 -07:00
Michael Davidsaver a3862b423b libevent 2.0 compat 2020-03-07 10:25:18 -08:00
Michael Davidsaver 4207b6639b evthread_use_* is not idempotent 2020-03-05 15:33:39 -08:00
Michael Davidsaver 44331decf9 redo evhelper::dispatch()/call()
void races and
2020-03-04 19:34:16 -08:00
Michael Davidsaver 8c646cd65a more log 2020-02-20 09:37:29 -08:00
Michael Davidsaver 99ce43c0eb prefer log_*_printf() 2020-02-19 07:10:52 -08:00
Michael Davidsaver 03c41c2ce3 minor 2020-02-03 14:57:50 -08:00
Michael Davidsaver 80dacb895e log show time 2020-02-03 14:57:50 -08:00
Michael Davidsaver c2a4224a21 server monitor 2020-01-22 12:25:21 -08:00
Michael Davidsaver fecdd52e70 update logging 2019-12-19 18:42:39 -08:00