pvxslibs 1.4.0a3__tar.gz → 1.4.1__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Potentially problematic release.
This version of pvxslibs might be problematic. Click here for more details.
- {pvxslibs-1.4.0a3/python/pvxslibs.egg-info → pvxslibs-1.4.1}/PKG-INFO +1 -1
- {pvxslibs-1.4.0a3 → pvxslibs-1.4.1}/configure/CONFIG_PVXS_VERSION +3 -2
- {pvxslibs-1.4.0a3 → pvxslibs-1.4.1}/ioc/pvalink.cpp +1 -1
- {pvxslibs-1.4.0a3 → pvxslibs-1.4.1}/pyproject.toml +1 -1
- {pvxslibs-1.4.0a3 → pvxslibs-1.4.1/python/pvxslibs.egg-info}/PKG-INFO +1 -1
- pvxslibs-1.4.1/python/pvxslibs.egg-info/requires.txt +2 -0
- {pvxslibs-1.4.0a3 → pvxslibs-1.4.1}/setup.py +1 -1
- {pvxslibs-1.4.0a3 → pvxslibs-1.4.1}/src/client.cpp +6 -2
- {pvxslibs-1.4.0a3 → pvxslibs-1.4.1}/src/clientdiscover.cpp +3 -3
- {pvxslibs-1.4.0a3 → pvxslibs-1.4.1}/src/clientget.cpp +8 -5
- {pvxslibs-1.4.0a3 → pvxslibs-1.4.1}/src/clientimpl.h +3 -2
- {pvxslibs-1.4.0a3 → pvxslibs-1.4.1}/src/clientintrospect.cpp +5 -3
- {pvxslibs-1.4.0a3 → pvxslibs-1.4.1}/src/clientmon.cpp +5 -7
- {pvxslibs-1.4.0a3 → pvxslibs-1.4.1}/src/evhelper.cpp +1 -0
- {pvxslibs-1.4.0a3 → pvxslibs-1.4.1}/src/pvxs/client.h +4 -1
- {pvxslibs-1.4.0a3 → pvxslibs-1.4.1}/src/pvxs/srvcommon.h +2 -2
- {pvxslibs-1.4.0a3 → pvxslibs-1.4.1}/src/server.cpp +3 -2
- {pvxslibs-1.4.0a3 → pvxslibs-1.4.1}/src/serverget.cpp +7 -6
- {pvxslibs-1.4.0a3 → pvxslibs-1.4.1}/src/servermon.cpp +14 -5
- {pvxslibs-1.4.0a3 → pvxslibs-1.4.1}/src/util.cpp +4 -3
- pvxslibs-1.4.0a3/python/pvxslibs.egg-info/requires.txt +0 -2
- {pvxslibs-1.4.0a3 → pvxslibs-1.4.1}/COPYRIGHT +0 -0
- {pvxslibs-1.4.0a3 → pvxslibs-1.4.1}/LICENSE +0 -0
- {pvxslibs-1.4.0a3 → pvxslibs-1.4.1}/MANIFEST.in +0 -0
- {pvxslibs-1.4.0a3 → pvxslibs-1.4.1}/README.md +0 -0
- {pvxslibs-1.4.0a3 → pvxslibs-1.4.1}/bundle/libevent/LICENSE +0 -0
- {pvxslibs-1.4.0a3 → pvxslibs-1.4.1}/bundle/libevent/arc4random.c +0 -0
- {pvxslibs-1.4.0a3 → pvxslibs-1.4.1}/bundle/libevent/buffer.c +0 -0
- {pvxslibs-1.4.0a3 → pvxslibs-1.4.1}/bundle/libevent/buffer_iocp.c +0 -0
- {pvxslibs-1.4.0a3 → pvxslibs-1.4.1}/bundle/libevent/bufferevent-internal.h +0 -0
- {pvxslibs-1.4.0a3 → pvxslibs-1.4.1}/bundle/libevent/bufferevent.c +0 -0
- {pvxslibs-1.4.0a3 → pvxslibs-1.4.1}/bundle/libevent/bufferevent_async.c +0 -0
- {pvxslibs-1.4.0a3 → pvxslibs-1.4.1}/bundle/libevent/bufferevent_filter.c +0 -0
- {pvxslibs-1.4.0a3 → pvxslibs-1.4.1}/bundle/libevent/bufferevent_mbedtls.c +0 -0
- {pvxslibs-1.4.0a3 → pvxslibs-1.4.1}/bundle/libevent/bufferevent_openssl.c +0 -0
- {pvxslibs-1.4.0a3 → pvxslibs-1.4.1}/bundle/libevent/bufferevent_pair.c +0 -0
- {pvxslibs-1.4.0a3 → pvxslibs-1.4.1}/bundle/libevent/bufferevent_ratelim.c +0 -0
- {pvxslibs-1.4.0a3 → pvxslibs-1.4.1}/bundle/libevent/bufferevent_sock.c +0 -0
- {pvxslibs-1.4.0a3 → pvxslibs-1.4.1}/bundle/libevent/bufferevent_ssl.c +0 -0
- {pvxslibs-1.4.0a3 → pvxslibs-1.4.1}/bundle/libevent/changelist-internal.h +0 -0
- {pvxslibs-1.4.0a3 → pvxslibs-1.4.1}/bundle/libevent/cmake/VersionViaGit.cmake +0 -0
- {pvxslibs-1.4.0a3 → pvxslibs-1.4.1}/bundle/libevent/compat/sys/queue.h +0 -0
- {pvxslibs-1.4.0a3 → pvxslibs-1.4.1}/bundle/libevent/defer-internal.h +0 -0
- {pvxslibs-1.4.0a3 → pvxslibs-1.4.1}/bundle/libevent/devpoll.c +0 -0
- {pvxslibs-1.4.0a3 → pvxslibs-1.4.1}/bundle/libevent/epoll.c +0 -0
- {pvxslibs-1.4.0a3 → pvxslibs-1.4.1}/bundle/libevent/epoll_sub.c +0 -0
- {pvxslibs-1.4.0a3 → pvxslibs-1.4.1}/bundle/libevent/epolltable-internal.h +0 -0
- {pvxslibs-1.4.0a3 → pvxslibs-1.4.1}/bundle/libevent/evbuffer-internal.h +0 -0
- {pvxslibs-1.4.0a3 → pvxslibs-1.4.1}/bundle/libevent/evconfig-private.h.cmake +0 -0
- {pvxslibs-1.4.0a3 → pvxslibs-1.4.1}/bundle/libevent/evdns.c +0 -0
- {pvxslibs-1.4.0a3 → pvxslibs-1.4.1}/bundle/libevent/event-config.h.cmake +0 -0
- {pvxslibs-1.4.0a3 → pvxslibs-1.4.1}/bundle/libevent/event-internal.h +0 -0
- {pvxslibs-1.4.0a3 → pvxslibs-1.4.1}/bundle/libevent/event.c +0 -0
- {pvxslibs-1.4.0a3 → pvxslibs-1.4.1}/bundle/libevent/event_iocp.c +0 -0
- {pvxslibs-1.4.0a3 → pvxslibs-1.4.1}/bundle/libevent/event_tagging.c +0 -0
- {pvxslibs-1.4.0a3 → pvxslibs-1.4.1}/bundle/libevent/evmap-internal.h +0 -0
- {pvxslibs-1.4.0a3 → pvxslibs-1.4.1}/bundle/libevent/evmap.c +0 -0
- {pvxslibs-1.4.0a3 → pvxslibs-1.4.1}/bundle/libevent/evport.c +0 -0
- {pvxslibs-1.4.0a3 → pvxslibs-1.4.1}/bundle/libevent/evrpc-internal.h +0 -0
- {pvxslibs-1.4.0a3 → pvxslibs-1.4.1}/bundle/libevent/evrpc.c +0 -0
- {pvxslibs-1.4.0a3 → pvxslibs-1.4.1}/bundle/libevent/evsignal-internal.h +0 -0
- {pvxslibs-1.4.0a3 → pvxslibs-1.4.1}/bundle/libevent/evthread-internal.h +0 -0
- {pvxslibs-1.4.0a3 → pvxslibs-1.4.1}/bundle/libevent/evthread.c +0 -0
- {pvxslibs-1.4.0a3 → pvxslibs-1.4.1}/bundle/libevent/evthread_pthread.c +0 -0
- {pvxslibs-1.4.0a3 → pvxslibs-1.4.1}/bundle/libevent/evthread_win32.c +0 -0
- {pvxslibs-1.4.0a3 → pvxslibs-1.4.1}/bundle/libevent/evutil.c +0 -0
- {pvxslibs-1.4.0a3 → pvxslibs-1.4.1}/bundle/libevent/evutil_rand.c +0 -0
- {pvxslibs-1.4.0a3 → pvxslibs-1.4.1}/bundle/libevent/evutil_time.c +0 -0
- {pvxslibs-1.4.0a3 → pvxslibs-1.4.1}/bundle/libevent/ht-internal.h +0 -0
- {pvxslibs-1.4.0a3 → pvxslibs-1.4.1}/bundle/libevent/http-internal.h +0 -0
- {pvxslibs-1.4.0a3 → pvxslibs-1.4.1}/bundle/libevent/http.c +0 -0
- {pvxslibs-1.4.0a3 → pvxslibs-1.4.1}/bundle/libevent/include/evdns.h +0 -0
- {pvxslibs-1.4.0a3 → pvxslibs-1.4.1}/bundle/libevent/include/event.h +0 -0
- {pvxslibs-1.4.0a3 → pvxslibs-1.4.1}/bundle/libevent/include/event2/buffer.h +0 -0
- {pvxslibs-1.4.0a3 → pvxslibs-1.4.1}/bundle/libevent/include/event2/buffer_compat.h +0 -0
- {pvxslibs-1.4.0a3 → pvxslibs-1.4.1}/bundle/libevent/include/event2/bufferevent.h +0 -0
- {pvxslibs-1.4.0a3 → pvxslibs-1.4.1}/bundle/libevent/include/event2/bufferevent_compat.h +0 -0
- {pvxslibs-1.4.0a3 → pvxslibs-1.4.1}/bundle/libevent/include/event2/bufferevent_ssl.h +0 -0
- {pvxslibs-1.4.0a3 → pvxslibs-1.4.1}/bundle/libevent/include/event2/bufferevent_struct.h +0 -0
- {pvxslibs-1.4.0a3 → pvxslibs-1.4.1}/bundle/libevent/include/event2/dns.h +0 -0
- {pvxslibs-1.4.0a3 → pvxslibs-1.4.1}/bundle/libevent/include/event2/dns_compat.h +0 -0
- {pvxslibs-1.4.0a3 → pvxslibs-1.4.1}/bundle/libevent/include/event2/dns_struct.h +0 -0
- {pvxslibs-1.4.0a3 → pvxslibs-1.4.1}/bundle/libevent/include/event2/event.h +0 -0
- {pvxslibs-1.4.0a3 → pvxslibs-1.4.1}/bundle/libevent/include/event2/event_compat.h +0 -0
- {pvxslibs-1.4.0a3 → pvxslibs-1.4.1}/bundle/libevent/include/event2/event_struct.h +0 -0
- {pvxslibs-1.4.0a3 → pvxslibs-1.4.1}/bundle/libevent/include/event2/http.h +0 -0
- {pvxslibs-1.4.0a3 → pvxslibs-1.4.1}/bundle/libevent/include/event2/http_compat.h +0 -0
- {pvxslibs-1.4.0a3 → pvxslibs-1.4.1}/bundle/libevent/include/event2/http_struct.h +0 -0
- {pvxslibs-1.4.0a3 → pvxslibs-1.4.1}/bundle/libevent/include/event2/keyvalq_struct.h +0 -0
- {pvxslibs-1.4.0a3 → pvxslibs-1.4.1}/bundle/libevent/include/event2/listener.h +0 -0
- {pvxslibs-1.4.0a3 → pvxslibs-1.4.1}/bundle/libevent/include/event2/rpc.h +0 -0
- {pvxslibs-1.4.0a3 → pvxslibs-1.4.1}/bundle/libevent/include/event2/rpc_compat.h +0 -0
- {pvxslibs-1.4.0a3 → pvxslibs-1.4.1}/bundle/libevent/include/event2/rpc_struct.h +0 -0
- {pvxslibs-1.4.0a3 → pvxslibs-1.4.1}/bundle/libevent/include/event2/tag.h +0 -0
- {pvxslibs-1.4.0a3 → pvxslibs-1.4.1}/bundle/libevent/include/event2/tag_compat.h +0 -0
- {pvxslibs-1.4.0a3 → pvxslibs-1.4.1}/bundle/libevent/include/event2/thread.h +0 -0
- {pvxslibs-1.4.0a3 → pvxslibs-1.4.1}/bundle/libevent/include/event2/util.h +0 -0
- {pvxslibs-1.4.0a3 → pvxslibs-1.4.1}/bundle/libevent/include/event2/visibility.h +0 -0
- {pvxslibs-1.4.0a3 → pvxslibs-1.4.1}/bundle/libevent/include/event2/watch.h +0 -0
- {pvxslibs-1.4.0a3 → pvxslibs-1.4.1}/bundle/libevent/include/event2/ws.h +0 -0
- {pvxslibs-1.4.0a3 → pvxslibs-1.4.1}/bundle/libevent/include/evhttp.h +0 -0
- {pvxslibs-1.4.0a3 → pvxslibs-1.4.1}/bundle/libevent/include/evrpc.h +0 -0
- {pvxslibs-1.4.0a3 → pvxslibs-1.4.1}/bundle/libevent/include/evutil.h +0 -0
- {pvxslibs-1.4.0a3 → pvxslibs-1.4.1}/bundle/libevent/iocp-internal.h +0 -0
- {pvxslibs-1.4.0a3 → pvxslibs-1.4.1}/bundle/libevent/ipv6-internal.h +0 -0
- {pvxslibs-1.4.0a3 → pvxslibs-1.4.1}/bundle/libevent/kqueue-internal.h +0 -0
- {pvxslibs-1.4.0a3 → pvxslibs-1.4.1}/bundle/libevent/kqueue.c +0 -0
- {pvxslibs-1.4.0a3 → pvxslibs-1.4.1}/bundle/libevent/listener.c +0 -0
- {pvxslibs-1.4.0a3 → pvxslibs-1.4.1}/bundle/libevent/log-internal.h +0 -0
- {pvxslibs-1.4.0a3 → pvxslibs-1.4.1}/bundle/libevent/log.c +0 -0
- {pvxslibs-1.4.0a3 → pvxslibs-1.4.1}/bundle/libevent/mbedtls-compat.h +0 -0
- {pvxslibs-1.4.0a3 → pvxslibs-1.4.1}/bundle/libevent/minheap-internal.h +0 -0
- {pvxslibs-1.4.0a3 → pvxslibs-1.4.1}/bundle/libevent/mm-internal.h +0 -0
- {pvxslibs-1.4.0a3 → pvxslibs-1.4.1}/bundle/libevent/openssl-compat.h +0 -0
- {pvxslibs-1.4.0a3 → pvxslibs-1.4.1}/bundle/libevent/poll.c +0 -0
- {pvxslibs-1.4.0a3 → pvxslibs-1.4.1}/bundle/libevent/ratelim-internal.h +0 -0
- {pvxslibs-1.4.0a3 → pvxslibs-1.4.1}/bundle/libevent/select.c +0 -0
- {pvxslibs-1.4.0a3 → pvxslibs-1.4.1}/bundle/libevent/sha1.c +0 -0
- {pvxslibs-1.4.0a3 → pvxslibs-1.4.1}/bundle/libevent/sha1.h +0 -0
- {pvxslibs-1.4.0a3 → pvxslibs-1.4.1}/bundle/libevent/signal.c +0 -0
- {pvxslibs-1.4.0a3 → pvxslibs-1.4.1}/bundle/libevent/signalfd.c +0 -0
- {pvxslibs-1.4.0a3 → pvxslibs-1.4.1}/bundle/libevent/ssl-compat.h +0 -0
- {pvxslibs-1.4.0a3 → pvxslibs-1.4.1}/bundle/libevent/strlcpy-internal.h +0 -0
- {pvxslibs-1.4.0a3 → pvxslibs-1.4.1}/bundle/libevent/strlcpy.c +0 -0
- {pvxslibs-1.4.0a3 → pvxslibs-1.4.1}/bundle/libevent/time-internal.h +0 -0
- {pvxslibs-1.4.0a3 → pvxslibs-1.4.1}/bundle/libevent/util-internal.h +0 -0
- {pvxslibs-1.4.0a3 → pvxslibs-1.4.1}/bundle/libevent/watch.c +0 -0
- {pvxslibs-1.4.0a3 → pvxslibs-1.4.1}/bundle/libevent/wepoll.c +0 -0
- {pvxslibs-1.4.0a3 → pvxslibs-1.4.1}/bundle/libevent/wepoll.h +0 -0
- {pvxslibs-1.4.0a3 → pvxslibs-1.4.1}/bundle/libevent/win32select.c +0 -0
- {pvxslibs-1.4.0a3 → pvxslibs-1.4.1}/bundle/libevent/ws.c +0 -0
- {pvxslibs-1.4.0a3 → pvxslibs-1.4.1}/ioc/channel.cpp +0 -0
- {pvxslibs-1.4.0a3 → pvxslibs-1.4.1}/ioc/channel.h +0 -0
- {pvxslibs-1.4.0a3 → pvxslibs-1.4.1}/ioc/credentials.cpp +0 -0
- {pvxslibs-1.4.0a3 → pvxslibs-1.4.1}/ioc/credentials.h +0 -0
- {pvxslibs-1.4.0a3 → pvxslibs-1.4.1}/ioc/dbentry.h +0 -0
- {pvxslibs-1.4.0a3 → pvxslibs-1.4.1}/ioc/dberrormessage.cpp +0 -0
- {pvxslibs-1.4.0a3 → pvxslibs-1.4.1}/ioc/dberrormessage.h +0 -0
- {pvxslibs-1.4.0a3 → pvxslibs-1.4.1}/ioc/dbeventcontextdeleter.h +0 -0
- {pvxslibs-1.4.0a3 → pvxslibs-1.4.1}/ioc/dblocker.h +0 -0
- {pvxslibs-1.4.0a3 → pvxslibs-1.4.1}/ioc/dbmanylocker.h +0 -0
- {pvxslibs-1.4.0a3 → pvxslibs-1.4.1}/ioc/demo.cpp +0 -0
- {pvxslibs-1.4.0a3 → pvxslibs-1.4.1}/ioc/dummygroup.cpp +0 -0
- {pvxslibs-1.4.0a3 → pvxslibs-1.4.1}/ioc/dummysingle.cpp +0 -0
- {pvxslibs-1.4.0a3 → pvxslibs-1.4.1}/ioc/field.cpp +0 -0
- {pvxslibs-1.4.0a3 → pvxslibs-1.4.1}/ioc/field.h +0 -0
- {pvxslibs-1.4.0a3 → pvxslibs-1.4.1}/ioc/fieldconfig.h +0 -0
- {pvxslibs-1.4.0a3 → pvxslibs-1.4.1}/ioc/fielddefinition.cpp +0 -0
- {pvxslibs-1.4.0a3 → pvxslibs-1.4.1}/ioc/fielddefinition.h +0 -0
- {pvxslibs-1.4.0a3 → pvxslibs-1.4.1}/ioc/fieldname.cpp +0 -0
- {pvxslibs-1.4.0a3 → pvxslibs-1.4.1}/ioc/fieldname.h +0 -0
- {pvxslibs-1.4.0a3 → pvxslibs-1.4.1}/ioc/fieldnamecomponent.h +0 -0
- {pvxslibs-1.4.0a3 → pvxslibs-1.4.1}/ioc/fieldsubscriptionctx.cpp +0 -0
- {pvxslibs-1.4.0a3 → pvxslibs-1.4.1}/ioc/fieldsubscriptionctx.h +0 -0
- {pvxslibs-1.4.0a3 → pvxslibs-1.4.1}/ioc/group.cpp +0 -0
- {pvxslibs-1.4.0a3 → pvxslibs-1.4.1}/ioc/group.h +0 -0
- {pvxslibs-1.4.0a3 → pvxslibs-1.4.1}/ioc/groupconfig.h +0 -0
- {pvxslibs-1.4.0a3 → pvxslibs-1.4.1}/ioc/groupconfigprocessor.cpp +0 -0
- {pvxslibs-1.4.0a3 → pvxslibs-1.4.1}/ioc/groupconfigprocessor.h +0 -0
- {pvxslibs-1.4.0a3 → pvxslibs-1.4.1}/ioc/groupdefinition.h +0 -0
- {pvxslibs-1.4.0a3 → pvxslibs-1.4.1}/ioc/groupprocessorcontext.cpp +0 -0
- {pvxslibs-1.4.0a3 → pvxslibs-1.4.1}/ioc/groupprocessorcontext.h +0 -0
- {pvxslibs-1.4.0a3 → pvxslibs-1.4.1}/ioc/groupsource.cpp +0 -0
- {pvxslibs-1.4.0a3 → pvxslibs-1.4.1}/ioc/groupsource.h +0 -0
- {pvxslibs-1.4.0a3 → pvxslibs-1.4.1}/ioc/groupsourcehooks.cpp +0 -0
- {pvxslibs-1.4.0a3 → pvxslibs-1.4.1}/ioc/groupsrcsubscriptionctx.h +0 -0
- {pvxslibs-1.4.0a3 → pvxslibs-1.4.1}/ioc/imagedemo.c +0 -0
- {pvxslibs-1.4.0a3 → pvxslibs-1.4.1}/ioc/iochooks.cpp +0 -0
- {pvxslibs-1.4.0a3 → pvxslibs-1.4.1}/ioc/iocshargument.h +0 -0
- {pvxslibs-1.4.0a3 → pvxslibs-1.4.1}/ioc/iocshcommand.h +0 -0
- {pvxslibs-1.4.0a3 → pvxslibs-1.4.1}/ioc/iocshindex.h +0 -0
- {pvxslibs-1.4.0a3 → pvxslibs-1.4.1}/ioc/iocsource.cpp +0 -0
- {pvxslibs-1.4.0a3 → pvxslibs-1.4.1}/ioc/iocsource.h +0 -0
- {pvxslibs-1.4.0a3 → pvxslibs-1.4.1}/ioc/localfieldlog.cpp +0 -0
- {pvxslibs-1.4.0a3 → pvxslibs-1.4.1}/ioc/localfieldlog.h +0 -0
- {pvxslibs-1.4.0a3 → pvxslibs-1.4.1}/ioc/pvalink.h +0 -0
- {pvxslibs-1.4.0a3 → pvxslibs-1.4.1}/ioc/pvalink_channel.cpp +0 -0
- {pvxslibs-1.4.0a3 → pvxslibs-1.4.1}/ioc/pvalink_jlif.cpp +0 -0
- {pvxslibs-1.4.0a3 → pvxslibs-1.4.1}/ioc/pvalink_link.cpp +0 -0
- {pvxslibs-1.4.0a3 → pvxslibs-1.4.1}/ioc/pvalink_lset.cpp +0 -0
- {pvxslibs-1.4.0a3 → pvxslibs-1.4.1}/ioc/pvxs/iochooks.h +0 -0
- {pvxslibs-1.4.0a3 → pvxslibs-1.4.1}/ioc/pvxs3x.dbd +0 -0
- {pvxslibs-1.4.0a3 → pvxslibs-1.4.1}/ioc/pvxs7x.dbd +0 -0
- {pvxslibs-1.4.0a3 → pvxslibs-1.4.1}/ioc/qsrvpvt.h +0 -0
- {pvxslibs-1.4.0a3 → pvxslibs-1.4.1}/ioc/securityclient.cpp +0 -0
- {pvxslibs-1.4.0a3 → pvxslibs-1.4.1}/ioc/securityclient.h +0 -0
- {pvxslibs-1.4.0a3 → pvxslibs-1.4.1}/ioc/securitylogger.h +0 -0
- {pvxslibs-1.4.0a3 → pvxslibs-1.4.1}/ioc/singlesource.cpp +0 -0
- {pvxslibs-1.4.0a3 → pvxslibs-1.4.1}/ioc/singlesource.h +0 -0
- {pvxslibs-1.4.0a3 → pvxslibs-1.4.1}/ioc/singlesourcehooks.cpp +0 -0
- {pvxslibs-1.4.0a3 → pvxslibs-1.4.1}/ioc/singlesrcsubscriptionctx.cpp +0 -0
- {pvxslibs-1.4.0a3 → pvxslibs-1.4.1}/ioc/singlesrcsubscriptionctx.h +0 -0
- {pvxslibs-1.4.0a3 → pvxslibs-1.4.1}/ioc/subscriptionctx.h +0 -0
- {pvxslibs-1.4.0a3 → pvxslibs-1.4.1}/ioc/typeutils.cpp +0 -0
- {pvxslibs-1.4.0a3 → pvxslibs-1.4.1}/ioc/typeutils.h +0 -0
- {pvxslibs-1.4.0a3 → pvxslibs-1.4.1}/ioc/yajlcallbackhandler.h +0 -0
- {pvxslibs-1.4.0a3 → pvxslibs-1.4.1}/python/pvxslibs/__init__.py +0 -0
- {pvxslibs-1.4.0a3 → pvxslibs-1.4.1}/python/pvxslibs/ioc.py +0 -0
- {pvxslibs-1.4.0a3 → pvxslibs-1.4.1}/python/pvxslibs/lib/__init__.py +0 -0
- {pvxslibs-1.4.0a3 → pvxslibs-1.4.1}/python/pvxslibs/path.py +0 -0
- {pvxslibs-1.4.0a3 → pvxslibs-1.4.1}/python/pvxslibs/test/__init__.py +0 -0
- {pvxslibs-1.4.0a3 → pvxslibs-1.4.1}/python/pvxslibs/test/test_load.py +0 -0
- {pvxslibs-1.4.0a3 → pvxslibs-1.4.1}/python/pvxslibs/version.py +0 -0
- {pvxslibs-1.4.0a3 → pvxslibs-1.4.1}/python/pvxslibs.egg-info/SOURCES.txt +0 -0
- {pvxslibs-1.4.0a3 → pvxslibs-1.4.1}/python/pvxslibs.egg-info/dependency_links.txt +0 -0
- {pvxslibs-1.4.0a3 → pvxslibs-1.4.1}/python/pvxslibs.egg-info/not-zip-safe +0 -0
- {pvxslibs-1.4.0a3 → pvxslibs-1.4.1}/python/pvxslibs.egg-info/top_level.txt +0 -0
- {pvxslibs-1.4.0a3 → pvxslibs-1.4.1}/setup.cfg +0 -0
- {pvxslibs-1.4.0a3 → pvxslibs-1.4.1}/src/bitmask.cpp +0 -0
- {pvxslibs-1.4.0a3 → pvxslibs-1.4.1}/src/bitmask.h +0 -0
- {pvxslibs-1.4.0a3 → pvxslibs-1.4.1}/src/clientconn.cpp +0 -0
- {pvxslibs-1.4.0a3 → pvxslibs-1.4.1}/src/clientreq.cpp +0 -0
- {pvxslibs-1.4.0a3 → pvxslibs-1.4.1}/src/config.cpp +0 -0
- {pvxslibs-1.4.0a3 → pvxslibs-1.4.1}/src/conn.cpp +0 -0
- {pvxslibs-1.4.0a3 → pvxslibs-1.4.1}/src/conn.h +0 -0
- {pvxslibs-1.4.0a3 → pvxslibs-1.4.1}/src/data.cpp +0 -0
- {pvxslibs-1.4.0a3 → pvxslibs-1.4.1}/src/dataencode.cpp +0 -0
- {pvxslibs-1.4.0a3 → pvxslibs-1.4.1}/src/datafmt.cpp +0 -0
- {pvxslibs-1.4.0a3 → pvxslibs-1.4.1}/src/dataimpl.h +0 -0
- {pvxslibs-1.4.0a3 → pvxslibs-1.4.1}/src/describe.cpp +0 -0
- {pvxslibs-1.4.0a3 → pvxslibs-1.4.1}/src/describe.h@ +0 -0
- {pvxslibs-1.4.0a3 → pvxslibs-1.4.1}/src/evhelper.h +0 -0
- {pvxslibs-1.4.0a3 → pvxslibs-1.4.1}/src/log.cpp +0 -0
- {pvxslibs-1.4.0a3 → pvxslibs-1.4.1}/src/nt.cpp +0 -0
- {pvxslibs-1.4.0a3 → pvxslibs-1.4.1}/src/os/WIN32/osdSockExt.cpp +0 -0
- {pvxslibs-1.4.0a3 → pvxslibs-1.4.1}/src/os/default/osdSockExt.cpp +0 -0
- {pvxslibs-1.4.0a3 → pvxslibs-1.4.1}/src/osgroups.cpp +0 -0
- {pvxslibs-1.4.0a3 → pvxslibs-1.4.1}/src/osiSockExt.h +0 -0
- {pvxslibs-1.4.0a3 → pvxslibs-1.4.1}/src/pvaproto.h +0 -0
- {pvxslibs-1.4.0a3 → pvxslibs-1.4.1}/src/pvrequest.cpp +0 -0
- {pvxslibs-1.4.0a3 → pvxslibs-1.4.1}/src/pvrequest.h +0 -0
- {pvxslibs-1.4.0a3 → pvxslibs-1.4.1}/src/pvxs/data.h +0 -0
- {pvxslibs-1.4.0a3 → pvxslibs-1.4.1}/src/pvxs/log.h +0 -0
- {pvxslibs-1.4.0a3 → pvxslibs-1.4.1}/src/pvxs/netcommon.h +0 -0
- {pvxslibs-1.4.0a3 → pvxslibs-1.4.1}/src/pvxs/nt.h +0 -0
- {pvxslibs-1.4.0a3 → pvxslibs-1.4.1}/src/pvxs/server.h +0 -0
- {pvxslibs-1.4.0a3 → pvxslibs-1.4.1}/src/pvxs/sharedArray.h +0 -0
- {pvxslibs-1.4.0a3 → pvxslibs-1.4.1}/src/pvxs/sharedpv.h +0 -0
- {pvxslibs-1.4.0a3 → pvxslibs-1.4.1}/src/pvxs/source.h +0 -0
- {pvxslibs-1.4.0a3 → pvxslibs-1.4.1}/src/pvxs/unittest.h +0 -0
- {pvxslibs-1.4.0a3 → pvxslibs-1.4.1}/src/pvxs/util.h +0 -0
- {pvxslibs-1.4.0a3 → pvxslibs-1.4.1}/src/pvxs/version.h +0 -0
- {pvxslibs-1.4.0a3 → pvxslibs-1.4.1}/src/pvxs/versionNum.h@ +0 -0
- {pvxslibs-1.4.0a3 → pvxslibs-1.4.1}/src/serverchan.cpp +0 -0
- {pvxslibs-1.4.0a3 → pvxslibs-1.4.1}/src/serverconn.cpp +0 -0
- {pvxslibs-1.4.0a3 → pvxslibs-1.4.1}/src/serverconn.h +0 -0
- {pvxslibs-1.4.0a3 → pvxslibs-1.4.1}/src/serverintrospect.cpp +0 -0
- {pvxslibs-1.4.0a3 → pvxslibs-1.4.1}/src/serversource.cpp +0 -0
- {pvxslibs-1.4.0a3 → pvxslibs-1.4.1}/src/sharedarray.cpp +0 -0
- {pvxslibs-1.4.0a3 → pvxslibs-1.4.1}/src/sharedpv.cpp +0 -0
- {pvxslibs-1.4.0a3 → pvxslibs-1.4.1}/src/type.cpp +0 -0
- {pvxslibs-1.4.0a3 → pvxslibs-1.4.1}/src/udp_collector.cpp +0 -0
- {pvxslibs-1.4.0a3 → pvxslibs-1.4.1}/src/udp_collector.h +0 -0
- {pvxslibs-1.4.0a3 → pvxslibs-1.4.1}/src/unittest.cpp +0 -0
- {pvxslibs-1.4.0a3 → pvxslibs-1.4.1}/src/utilpvt.h +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
PVXS_MAJOR_VERSION = 1
|
|
2
2
|
PVXS_MINOR_VERSION = 4
|
|
3
|
-
PVXS_MAINTENANCE_VERSION =
|
|
3
|
+
PVXS_MAINTENANCE_VERSION = 1
|
|
4
4
|
|
|
5
5
|
# Version range conditions in Makefiles
|
|
6
6
|
#
|
|
@@ -12,7 +12,8 @@ PVXS_MAINTENANCE_VERSION = 0
|
|
|
12
12
|
#
|
|
13
13
|
# ifneq ($(PVXS_X_Y_Z),YES) # PVXS != X.Y.Z
|
|
14
14
|
#
|
|
15
|
-
|
|
15
|
+
PVXS_1_4_1 = YES
|
|
16
|
+
PVXS_1_4_0 = NO
|
|
16
17
|
PVXS_1_3_3 = NO
|
|
17
18
|
PVXS_1_3_2 = NO
|
|
18
19
|
PVXS_1_3_1 = NO
|
|
@@ -59,7 +59,7 @@ void linkGlobal_t::alloc()
|
|
|
59
59
|
if (inUnitTest()) {
|
|
60
60
|
linkGlobal->provider_remote = ioc::server().clientConfig().build();
|
|
61
61
|
} else {
|
|
62
|
-
linkGlobal->provider_remote = client::Config().build();
|
|
62
|
+
linkGlobal->provider_remote = client::Config::from_env().build();
|
|
63
63
|
}
|
|
64
64
|
}
|
|
65
65
|
|
|
@@ -696,7 +696,7 @@ build_dso.sub_commands.extend([
|
|
|
696
696
|
|
|
697
697
|
|
|
698
698
|
pvxs_ver = '%(PVXS_MAJOR_VERSION)s.%(PVXS_MINOR_VERSION)s.%(PVXS_MAINTENANCE_VERSION)s'%pvxsversion
|
|
699
|
-
pvxs_ver += 'a3'
|
|
699
|
+
# pvxs_ver += 'a3'
|
|
700
700
|
|
|
701
701
|
with open(os.path.join(os.path.dirname(__file__), 'README.md')) as F:
|
|
702
702
|
long_description = F.read()
|
|
@@ -310,16 +310,17 @@ void ResultWaiter::complete(Result&& result, bool interrupt)
|
|
|
310
310
|
notify.signal();
|
|
311
311
|
}
|
|
312
312
|
|
|
313
|
-
OperationBase::OperationBase(operation_t op, const evbase& loop)
|
|
313
|
+
OperationBase::OperationBase(operation_t op, const evbase& loop, const std::string &name)
|
|
314
314
|
:Operation(op)
|
|
315
315
|
,loop(loop)
|
|
316
|
+
,channelName(name)
|
|
316
317
|
{}
|
|
317
318
|
|
|
318
319
|
OperationBase::~OperationBase() {}
|
|
319
320
|
|
|
320
321
|
const std::string& OperationBase::name()
|
|
321
322
|
{
|
|
322
|
-
return
|
|
323
|
+
return channelName;
|
|
323
324
|
}
|
|
324
325
|
|
|
325
326
|
Value OperationBase::wait(double timeout)
|
|
@@ -606,6 +607,9 @@ ContextImpl::ContextImpl(const Config& conf, const evbase& tcp_loop)
|
|
|
606
607
|
nameServers.emplace_back(saddr, nullptr);
|
|
607
608
|
}
|
|
608
609
|
|
|
610
|
+
if(searchDest.empty() && nameServers.empty())
|
|
611
|
+
log_err_printf(setup, "Client context created with no search destinations. Nothing much will happen now%s", "\n");
|
|
612
|
+
|
|
609
613
|
const auto cb([this](const UDPManager::Beacon& msg) {
|
|
610
614
|
onBeacon(msg);
|
|
611
615
|
});
|
|
@@ -15,8 +15,8 @@ DEFINE_LOGGER(io, "pvxs.client.io");
|
|
|
15
15
|
namespace pvxs {
|
|
16
16
|
namespace client {
|
|
17
17
|
|
|
18
|
-
Discovery::Discovery(const std::shared_ptr<ContextImpl> &context)
|
|
19
|
-
:OperationBase (Operation::Discover, context->tcp_loop)
|
|
18
|
+
Discovery::Discovery(const std::shared_ptr<ContextImpl> &context, const std::string& name)
|
|
19
|
+
:OperationBase (Operation::Discover, context->tcp_loop, name)
|
|
20
20
|
,context(context)
|
|
21
21
|
{}
|
|
22
22
|
|
|
@@ -63,7 +63,7 @@ std::shared_ptr<Operation> DiscoverBuilder::exec()
|
|
|
63
63
|
auto context(ctx->impl->shared_from_this());
|
|
64
64
|
auto ping(_ping);
|
|
65
65
|
|
|
66
|
-
auto op(std::make_shared<Discovery>(context));
|
|
66
|
+
auto op(std::make_shared<Discovery>(context, std::string()));
|
|
67
67
|
op->notify = std::move(_fn);
|
|
68
68
|
|
|
69
69
|
auto syncCancel(_syncCancel);
|
|
@@ -134,8 +134,8 @@ struct GPROp : public OperationBase
|
|
|
134
134
|
|
|
135
135
|
INST_COUNTER(GPROp);
|
|
136
136
|
|
|
137
|
-
GPROp(operation_t op, const evbase& loop)
|
|
138
|
-
:OperationBase (op, loop)
|
|
137
|
+
GPROp(operation_t op, const evbase& loop, const std::string& name)
|
|
138
|
+
:OperationBase (op, loop, name)
|
|
139
139
|
{}
|
|
140
140
|
~GPROp() {
|
|
141
141
|
if(loop.assertInRunningLoop())
|
|
@@ -582,6 +582,9 @@ std::shared_ptr<Operation> gpr_setup(const std::shared_ptr<ContextImpl>& context
|
|
|
582
582
|
std::shared_ptr<GPROp>&& op,
|
|
583
583
|
bool syncCancel)
|
|
584
584
|
{
|
|
585
|
+
if(name.empty())
|
|
586
|
+
throw std::logic_error("Empty channel name");
|
|
587
|
+
|
|
585
588
|
auto internal(std::move(op));
|
|
586
589
|
internal->internal_self = internal;
|
|
587
590
|
|
|
@@ -625,7 +628,7 @@ std::shared_ptr<Operation> GetBuilder::_exec_get()
|
|
|
625
628
|
|
|
626
629
|
auto context(ctx->impl->shared_from_this());
|
|
627
630
|
|
|
628
|
-
auto op(std::make_shared<GPROp>(Operation::Get, context->tcp_loop));
|
|
631
|
+
auto op(std::make_shared<GPROp>(Operation::Get, context->tcp_loop, _name));
|
|
629
632
|
op->setDone(std::move(_result), std::move(_onInit));
|
|
630
633
|
op->autoExec = _autoexec;
|
|
631
634
|
op->pvRequest = _buildReq();
|
|
@@ -640,7 +643,7 @@ std::shared_ptr<Operation> PutBuilder::exec()
|
|
|
640
643
|
|
|
641
644
|
auto context(ctx->impl->shared_from_this());
|
|
642
645
|
|
|
643
|
-
auto op(std::make_shared<GPROp>(Operation::Put, context->tcp_loop));
|
|
646
|
+
auto op(std::make_shared<GPROp>(Operation::Put, context->tcp_loop, _name));
|
|
644
647
|
op->setDone(std::move(_result), std::move(_onInit));
|
|
645
648
|
|
|
646
649
|
if(_builder) {
|
|
@@ -672,7 +675,7 @@ std::shared_ptr<Operation> RPCBuilder::exec()
|
|
|
672
675
|
|
|
673
676
|
auto context(ctx->impl->shared_from_this());
|
|
674
677
|
|
|
675
|
-
auto op(std::make_shared<GPROp>(Operation::RPC, context->tcp_loop));
|
|
678
|
+
auto op(std::make_shared<GPROp>(Operation::RPC, context->tcp_loop, _name));
|
|
676
679
|
op->setDone(std::move(_result), nullptr);
|
|
677
680
|
if(_argument) {
|
|
678
681
|
if(!_autoexec)
|
|
@@ -44,6 +44,7 @@ struct ResultWaiter {
|
|
|
44
44
|
struct OperationBase : public Operation
|
|
45
45
|
{
|
|
46
46
|
const evbase loop;
|
|
47
|
+
const std::string channelName;
|
|
47
48
|
// remaining members only accessibly from loop worker
|
|
48
49
|
std::shared_ptr<Channel> chan;
|
|
49
50
|
uint32_t ioid = 0;
|
|
@@ -51,7 +52,7 @@ struct OperationBase : public Operation
|
|
|
51
52
|
bool done = false;
|
|
52
53
|
std::shared_ptr<ResultWaiter> waiter;
|
|
53
54
|
|
|
54
|
-
OperationBase(operation_t op, const evbase& loop);
|
|
55
|
+
OperationBase(operation_t op, const evbase& loop, const std::string& name);
|
|
55
56
|
virtual ~OperationBase();
|
|
56
57
|
|
|
57
58
|
virtual void createOp() =0;
|
|
@@ -230,7 +231,7 @@ struct Discovery final : public OperationBase
|
|
|
230
231
|
std::function<void(const Discovered &)> notify;
|
|
231
232
|
bool running = false;
|
|
232
233
|
|
|
233
|
-
Discovery(const std::shared_ptr<ContextImpl>& context);
|
|
234
|
+
Discovery(const std::shared_ptr<ContextImpl>& context, const std::string& name);
|
|
234
235
|
~Discovery();
|
|
235
236
|
|
|
236
237
|
virtual bool cancel() override final;
|
|
@@ -30,8 +30,8 @@ struct InfoOp : public OperationBase
|
|
|
30
30
|
|
|
31
31
|
INST_COUNTER(InfoOp);
|
|
32
32
|
|
|
33
|
-
explicit InfoOp(const evbase& loop)
|
|
34
|
-
:OperationBase(Info, loop)
|
|
33
|
+
explicit InfoOp(const evbase& loop, const std::string& name)
|
|
34
|
+
:OperationBase(Info, loop, name)
|
|
35
35
|
{}
|
|
36
36
|
|
|
37
37
|
virtual ~InfoOp()
|
|
@@ -184,10 +184,12 @@ std::shared_ptr<Operation> GetBuilder::_exec_info()
|
|
|
184
184
|
throw std::logic_error("NULL Builder");
|
|
185
185
|
if(!_autoexec)
|
|
186
186
|
throw std::logic_error("autoExec(false) not possible for info()");
|
|
187
|
+
if(_name.empty())
|
|
188
|
+
throw std::logic_error("Empty channel name");
|
|
187
189
|
|
|
188
190
|
auto context(ctx->impl->shared_from_this());
|
|
189
191
|
|
|
190
|
-
auto op(std::make_shared<InfoOp>(context->tcp_loop));
|
|
192
|
+
auto op(std::make_shared<InfoOp>(context->tcp_loop, _name));
|
|
191
193
|
if(_result) {
|
|
192
194
|
op->done = std::move(_result);
|
|
193
195
|
} else {
|
|
@@ -33,9 +33,6 @@ struct Entry {
|
|
|
33
33
|
|
|
34
34
|
struct SubscriptionImpl final : public OperationBase, public Subscription
|
|
35
35
|
{
|
|
36
|
-
// for use in log messages, even after cancel()
|
|
37
|
-
std::string channelName;
|
|
38
|
-
|
|
39
36
|
evevent ackTick;
|
|
40
37
|
|
|
41
38
|
// const after exec()
|
|
@@ -75,8 +72,8 @@ struct SubscriptionImpl final : public OperationBase, public Subscription
|
|
|
75
72
|
|
|
76
73
|
INST_COUNTER(SubscriptionImpl);
|
|
77
74
|
|
|
78
|
-
explicit SubscriptionImpl(const evbase& loop)
|
|
79
|
-
:OperationBase (Operation::Monitor, loop)
|
|
75
|
+
explicit SubscriptionImpl(const evbase& loop, const std::string& name)
|
|
76
|
+
:OperationBase (Operation::Monitor, loop, name)
|
|
80
77
|
,ackTick(__FILE__, __LINE__,
|
|
81
78
|
event_new(loop.base, -1, EV_TIMEOUT, &tickAckS, this))
|
|
82
79
|
{}
|
|
@@ -742,12 +739,13 @@ std::shared_ptr<Subscription> MonitorBuilder::exec()
|
|
|
742
739
|
{
|
|
743
740
|
if(!ctx)
|
|
744
741
|
throw std::logic_error("NULL Builder");
|
|
742
|
+
if(_name.empty())
|
|
743
|
+
throw std::logic_error("Empty channel name");
|
|
745
744
|
|
|
746
745
|
auto context(ctx->impl->shared_from_this());
|
|
747
746
|
|
|
748
|
-
auto op(std::make_shared<SubscriptionImpl>(context->tcp_loop));
|
|
747
|
+
auto op(std::make_shared<SubscriptionImpl>(context->tcp_loop, _name));
|
|
749
748
|
op->self = op;
|
|
750
|
-
op->channelName = std::move(_name);
|
|
751
749
|
op->event = std::move(_event);
|
|
752
750
|
op->onInit = std::move(_onInit);
|
|
753
751
|
op->pvRequest = _buildReq();
|
|
@@ -116,7 +116,10 @@ struct PVXS_API Operation {
|
|
|
116
116
|
Operation& operator=(const Operation&) = delete;
|
|
117
117
|
virtual ~Operation() =0;
|
|
118
118
|
|
|
119
|
-
|
|
119
|
+
/** PV name
|
|
120
|
+
*
|
|
121
|
+
* Returned reference is valid for the lifetime of the Operation
|
|
122
|
+
*/
|
|
120
123
|
virtual const std::string& name() =0;
|
|
121
124
|
|
|
122
125
|
//! Explicitly cancel a pending operation.
|
|
@@ -93,12 +93,12 @@ public:
|
|
|
93
93
|
virtual ~OpBase() =0;
|
|
94
94
|
};
|
|
95
95
|
//! Log to remote peer
|
|
96
|
-
//! @since
|
|
96
|
+
//! @since 1.4.0
|
|
97
97
|
struct PVXS_API RemoteLogger {
|
|
98
98
|
virtual ~RemoteLogger() =0;
|
|
99
99
|
|
|
100
100
|
//! Request log message to peer
|
|
101
|
-
//! @since
|
|
101
|
+
//! @since 1.4.0
|
|
102
102
|
virtual void logRemote(Level lvl, const std::string& msg) =0;
|
|
103
103
|
};
|
|
104
104
|
|
|
@@ -165,8 +165,9 @@ client::Config Server::clientConfig() const
|
|
|
165
165
|
ret.udp_port = pvt->effective.udp_port;
|
|
166
166
|
ret.tcp_port = pvt->effective.tcp_port;
|
|
167
167
|
ret.interfaces = pvt->effective.interfaces;
|
|
168
|
-
ret.addressList = pvt->effective.
|
|
169
|
-
ret.autoAddrList =
|
|
168
|
+
ret.addressList = pvt->effective.beaconDestinations;
|
|
169
|
+
ret.autoAddrList = pvt->effective.auto_beacon;
|
|
170
|
+
// pvt->effective.ignoreAddrs; no equivalent with client config
|
|
170
171
|
|
|
171
172
|
return ret;
|
|
172
173
|
}
|
|
@@ -88,8 +88,9 @@ struct ServerGPR final : public ServerOp
|
|
|
88
88
|
|
|
89
89
|
if(state==Executing)
|
|
90
90
|
state = Idle;
|
|
91
|
+
|
|
91
92
|
else // Creating
|
|
92
|
-
|
|
93
|
+
cleanup();
|
|
93
94
|
|
|
94
95
|
} else if(state==Creating) {
|
|
95
96
|
// connect()
|
|
@@ -108,7 +109,11 @@ struct ServerGPR final : public ServerOp
|
|
|
108
109
|
if(value)
|
|
109
110
|
to_wire_full(R, value);
|
|
110
111
|
}
|
|
111
|
-
|
|
112
|
+
if(lastRequest) {
|
|
113
|
+
cleanup();
|
|
114
|
+
} else {
|
|
115
|
+
state = Idle;
|
|
116
|
+
}
|
|
112
117
|
|
|
113
118
|
} else {
|
|
114
119
|
assert(false);
|
|
@@ -117,10 +122,6 @@ struct ServerGPR final : public ServerOp
|
|
|
117
122
|
}
|
|
118
123
|
|
|
119
124
|
ch->statTx += conn->enqueueTxBody(cmd);
|
|
120
|
-
|
|
121
|
-
if(state == ServerOp::Dead) {
|
|
122
|
-
cleanup();
|
|
123
|
-
}
|
|
124
125
|
}
|
|
125
126
|
|
|
126
127
|
void cleanup() override final
|
|
@@ -59,6 +59,8 @@ struct MonitorOp final : public ServerOp
|
|
|
59
59
|
// is doReply() scheduled to run
|
|
60
60
|
bool scheduled=false;
|
|
61
61
|
bool pipeline=false; // const after setup
|
|
62
|
+
// set until first update queued
|
|
63
|
+
bool first=true;
|
|
62
64
|
// finish() called
|
|
63
65
|
bool finished=false;
|
|
64
66
|
size_t window=0u, limit=4u;
|
|
@@ -128,7 +130,11 @@ struct MonitorOp final : public ServerOp
|
|
|
128
130
|
uint8_t subcmd = 0u;
|
|
129
131
|
if(self->state==Creating) {
|
|
130
132
|
subcmd = 0x08;
|
|
131
|
-
self->
|
|
133
|
+
if(self->type) {
|
|
134
|
+
self->state = Idle;
|
|
135
|
+
} else {
|
|
136
|
+
self->cleanup();
|
|
137
|
+
}
|
|
132
138
|
|
|
133
139
|
} else if(self->state==Executing) {
|
|
134
140
|
if(self->queue.empty() || (self->pipeline && !self->window && !self->finished)) {
|
|
@@ -138,7 +144,7 @@ struct MonitorOp final : public ServerOp
|
|
|
138
144
|
|
|
139
145
|
} else if(!self->queue.front()) {
|
|
140
146
|
subcmd = 0x10;
|
|
141
|
-
self->
|
|
147
|
+
self->cleanup();
|
|
142
148
|
log_debug_printf(connio, "Client %s IOID %u finishes\n",
|
|
143
149
|
conn->peerName.c_str(), unsigned(self->ioid));
|
|
144
150
|
}
|
|
@@ -177,7 +183,6 @@ struct MonitorOp final : public ServerOp
|
|
|
177
183
|
ch->statTx += conn->enqueueTxBody(pva_app_msg_t::CMD_MONITOR);
|
|
178
184
|
|
|
179
185
|
if(self->state == ServerOp::Dead) {
|
|
180
|
-
self->cleanup();
|
|
181
186
|
return;
|
|
182
187
|
}
|
|
183
188
|
|
|
@@ -250,7 +255,11 @@ struct ServerMonitorControl : public server::MonitorControlOp
|
|
|
250
255
|
throw std::logic_error("Type change not allowed in post(). Recommend pvxs::Value::cloneEmpty()");
|
|
251
256
|
|
|
252
257
|
// pvMask is const at this point, so no need to lock
|
|
253
|
-
bool real =
|
|
258
|
+
bool real = mon->first; // always post through first update
|
|
259
|
+
if(real)
|
|
260
|
+
mon->first = false;
|
|
261
|
+
else
|
|
262
|
+
real = testmask(val, mon->pvMask); // consider mask for subsequent updates
|
|
254
263
|
|
|
255
264
|
Guard G(mon->lock);
|
|
256
265
|
if(mon->finished)
|
|
@@ -533,7 +542,7 @@ void ServerConn::handle_MONITOR()
|
|
|
533
542
|
|
|
534
543
|
if(op->pipeline) {
|
|
535
544
|
if(!nack) {
|
|
536
|
-
// before
|
|
545
|
+
// before 1.4.0 initial nack=0 clamped the window size to zero!
|
|
537
546
|
log_err_printf(connsetup,
|
|
538
547
|
"Client %s \"%s\" pipeline monitor w/o initial nack incompatible\n",
|
|
539
548
|
peerName.c_str(), chan->name.c_str());
|
|
@@ -716,9 +716,10 @@ std::ostream& operator<<(std::ostream& strm, const SockAddr& addr)
|
|
|
716
716
|
|
|
717
717
|
GetAddrInfo::GetAddrInfo(const char *name)
|
|
718
718
|
{
|
|
719
|
-
|
|
720
|
-
|
|
721
|
-
|
|
719
|
+
// evutil_getaddrinfo() wrapper implicitly expects result pointer to be zerod
|
|
720
|
+
// when applying various compatibility "hacks" on some targets.
|
|
721
|
+
info = nullptr;
|
|
722
|
+
if(auto err = evutil_getaddrinfo(name, nullptr, nullptr, &info)) {
|
|
722
723
|
throw std::runtime_error(SB()<<"Error resolving \""<<escape(name)<<"\" : "<<evutil_gai_strerror(err));
|
|
723
724
|
}
|
|
724
725
|
}
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|