Commit Graph

60 Commits

Author SHA1 Message Date
Michael Davidsaver aef69c9f25 redo INST_COUNTER
Allow for use by pvxsIoc
2023-05-09 22:24:19 -07:00
Michael Davidsaver 9449059d8b expose wrappers for some evutil as expert API 2023-04-02 20:21:53 -07:00
Michael Davidsaver a012b9ffe0 testStrEq() better diff 2023-03-28 15:21:39 -07:00
Michael Davidsaver d692d7da2c loc_bad_alloc 2023-03-28 15:21:34 -07:00
Michael Davidsaver 6f770d0ea3 final-ize some derived types 2023-03-20 09:41:41 -07:00
Michael Davidsaver 1aad37c230 minor 2023-02-13 07:42:54 -08:00
Michael Davidsaver 6d9a77d03b SigInt fix disarm 2023-01-26 08:23:40 -08:00
Michael Davidsaver 1ed51c597c avoid redundant atomic load
compare_exchange_strong() updates 'idx' with
the actual value if the comparison fails.
2022-11-27 08:20:13 -08:00
Michael Davidsaver 25e7285c11 SigInt use worker thread
Remove restrictions on operations which can be preformed.
2022-11-27 08:20:13 -08:00
Michael Davidsaver bebd7a91aa SockAddr fallback to sync. dns lookup 2022-05-18 12:27:33 -07:00
Michael Davidsaver df4289b4e6 IPv6+mcast support 2022-04-05 07:57:16 -07:00
Michael Davidsaver 1040e87f39 add SockAddr::isMCast() and capacity() 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 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 c503eece31 spell check 2021-08-13 15:18:31 -07:00
Michael Davidsaver 60c60b1c80 Add python build 2021-07-26 10:45:37 -07:00
Michael Davidsaver c7376522e8 deduplicate instance counter names 2021-07-16 12:20:51 -07:00
Michael Davidsaver 1e08b6faf0 instance counter for # of live workers 2021-06-27 10:17:13 -07:00
Michael Davidsaver 1859e44fcf ostream state preservation 2021-06-27 10:17:13 -07:00
Michael Davidsaver c4d2cd4a10 client: reorg context Pvt 2021-06-27 10:17:13 -07:00
Michael Davidsaver bd7ba0db62 simplify GUID printing 2021-06-08 09:45:48 -07:00
Michael Davidsaver b47482e38a fix usage of recvmsg()
control message buf is not meaningful if
recvmsg() has returned an error.
2021-02-20 11:46:28 -08:00
Michael Davidsaver a064677e36 detect UDP RX buffer overflows
On Linux, use SO_RXQ_OVFL to snoop on the OS dropped packet
counter for our socket buffer.  Does not detect drops on
ingress, or internal to, to OS IP stack.
2021-01-28 07:44:32 -08:00
Michael Davidsaver 45ce8e9680 add PVXS_ABI_VERSION 2020-12-26 13:17:57 -08:00
Michael Davidsaver a6e7e9488d parse IPs with aToIPAddr()
evutil_parse_sockaddr_port() doesn't accept port zero.
2020-08-10 12:09:55 -07:00
Michael Davidsaver 9328d193af indented std::ostream w/ xalloc() 2020-07-26 20:46:12 -07:00
Michael Davidsaver f4576d4c33 Include input string when reporting parsing error (as NoConvert) 2020-07-22 11:14:57 -07:00
Michael Davidsaver 6c98614356 minor 2020-05-07 18:45:16 -07:00
Michael Davidsaver 46bcf877c9 replace epicsParse*() with std::sto*() 2020-04-16 22:01:38 -07:00
Michael Davidsaver a6c1565793 Add "live" counter for client Context 2020-04-07 12:05:30 -07:00
Michael Davidsaver 7a2ab35439 check instance counters in cleanup_for_valgrind() 2020-04-07 12:05:29 -07:00
Michael Davidsaver 9c9596b4d3 isprint() 2020-03-31 20:32:05 -07:00
Michael Davidsaver 271bbfae68 sharedArray reorg 2020-03-27 14:31:39 -07:00
Michael Davidsaver d811485b90 revise shared_vector casting
Rename existing castTo() as castToUnsafe().
Add new castTo() which is doesn't allow non-void -> non-void
and may throw on void -> non-void
2020-03-26 09:04:44 -07:00
Michael Davidsaver edadc31f96 add instanceSnapshot() 2020-03-24 18:38:10 -07:00
Michael Davidsaver d064afb5bb version include VCS rev. 2020-03-24 15:58:10 -07:00
Michael Davidsaver d452e009ce libevent 2.0 compat 2020-03-20 09:23:06 -07:00
Michael Davidsaver 078e0ea69f sharedArray formatting with size limit. 2020-03-19 17:15:53 -07:00
Michael Davidsaver 69f8068de0 oops escape double quote 2020-03-18 09:10:53 -07:00
Michael Davidsaver abf366213f consistent naming between TypeCode and ArrayType 2020-03-12 19:51:49 -07:00
Michael Davidsaver 410dccbe02 demote SockAddr from public API 2020-03-09 19:47:43 -07:00
Michael Davidsaver af973bea66 harmonize signal handling 2020-02-21 00:29:32 -08:00
Michael Davidsaver d6a4865a05 server config expand 2020-02-18 18:17:53 -08:00
Michael Davidsaver b9b22adb15 fix version_str() 2019-12-18 18:31:17 -08:00
Michael Davidsaver 810b7d3b1c use freeze/cast members 2019-12-15 16:43:22 -08:00
Michael Davidsaver 50963f0a3e reorg to separate type handling 2019-12-11 09:11:52 -08:00
Michael Davidsaver 2ba0150bd9 disambiguate
having pvxs::detail and pvxs::impl::detail causes confusion
2019-12-10 18:15:48 -08:00
Michael Davidsaver 801d295c1f start PVD 2019-12-10 17:56:40 -08:00
Michael Davidsaver 1f6502aef7 more util 2019-12-10 17:56:40 -08:00
Michael Davidsaver dd4da5d6d5 more test utils 2019-12-10 17:56:40 -08:00