diff --git a/dcmnet/include/dcmtk/dcmnet/dul.h b/dcmnet/include/dcmtk/dcmnet/dul.h index 52c9877..f679900 100644 --- a/dcmnet/include/dcmtk/dcmnet/dul.h +++ b/dcmnet/include/dcmtk/dcmnet/dul.h @@ -506,4 +506,11 @@ DCMTK_DCMNET_EXPORT void DUL_DumpConnectionParameters(DUL_ASSOCIATIONKEY *associ /// @deprecated Use OFString& dumpExtNegList(OFString&, SOPClassExtendedNegotiationSubItemList&) instead. DCMTK_DCMNET_EXPORT void dumpExtNegList(SOPClassExtendedNegotiationSubItemList& lst); +#ifdef WITH_TCPWRAPPER +struct request_info; +BEGIN_EXTERN_C +int dcmtk_hosts_access(struct request_info *req); +END_EXTERN_C +#endif + #endif diff --git a/dcmnet/libsrc/CMakeLists.txt b/dcmnet/libsrc/CMakeLists.txt index 72f94e2..a3bdc64 100644 --- a/dcmnet/libsrc/CMakeLists.txt +++ b/dcmnet/libsrc/CMakeLists.txt @@ -1,5 +1,5 @@ # create library from source files -DCMTK_ADD_LIBRARY(dcmnet assoc cond dcasccff dcasccfg dccfenmp dccfpcmp dccfprmp dccfrsmp dccftsmp dccfuidh dcmlayer dcmtrans dcompat dimcancl dimcmd dimdump dimecho dimfind dimget dimmove dimse dimstore diutil dul dulconst dulextra dulfsm dulparse dulpres extneg lst dfindscu dstorscu dcuserid scu scp) +DCMTK_ADD_LIBRARY(dcmnet assoc cond dcasccff dcasccfg dccfenmp dccfpcmp dccfprmp dccfrsmp dccftsmp dccfuidh dcmlayer dcmtrans dcompat dimcancl dimcmd dimdump dimecho dimfind dimget dimmove dimse dimstore diutil dul dulconst dulextra dulfsm dulparse dulpres extneg lst dfindscu dstorscu dcuserid scu scp dwrap) DCMTK_TARGET_LINK_MODULES(dcmnet ofstd oflog dcmdata) DCMTK_TARGET_LINK_LIBRARIES(dcmnet ${WRAP_LIBS}) diff --git a/dcmnet/libsrc/Makefile.in b/dcmnet/libsrc/Makefile.in index fdf7165..ddda984 100644 --- a/dcmnet/libsrc/Makefile.in +++ b/dcmnet/libsrc/Makefile.in @@ -25,7 +25,7 @@ objs = assoc.o cond.o dcompat.o dimcancl.o dimcmd.o dimdump.o dimecho.o \ dulfsm.o dulparse.o dulpres.o dul.o lst.o extneg.o dimget.o dcmlayer.o \ dcmtrans.o dcasccfg.o dcasccff.o dccfuidh.o dccftsmp.o dccfpcmp.o \ dccfrsmp.o dccfenmp.o dccfprmp.o dfindscu.o dstorscu.o dcuserid.o \ - scu.o scp.o + scu.o scp.o dwrap.o library = libdcmnet.$(LIBEXT) diff --git a/dcmnet/libsrc/dul.cc b/dcmnet/libsrc/dul.cc index c0eb341..cc40104 100644 --- a/dcmnet/libsrc/dul.cc +++ b/dcmnet/libsrc/dul.cc @@ -106,7 +106,6 @@ BEGIN_EXTERN_C #endif #ifdef WITH_TCPWRAPPER #include /* for hosts_ctl */ -#include #endif #ifdef HAVE_SIGNAL_H // On Solaris with Sun Workshop 11, declares signal() but does not @@ -114,18 +113,6 @@ BEGIN_EXTERN_C #endif END_EXTERN_C -#ifdef WITH_TCPWRAPPER -/* libwrap expects that two global flags, deny_severity and allow_severity, - * are defined and initialized by user code. If these flags are already present - * somewhere else, compile DCMTK with TCPWRAPPER_SEVERITY_EXTERN defined - * to avoid linker errors due to duplicate symbols. - */ -#ifndef TCPWRAPPER_SEVERITY_EXTERN -int deny_severity = LOG_WARNING; -int allow_severity = LOG_INFO; -#endif -#endif - BEGIN_EXTERN_C /* declare extern "C" typedef for signal handler function pointer */ #ifdef SIGNAL_HANDLER_WITH_ELLIPSE @@ -1919,7 +1906,7 @@ receiveTransportConnectionTCP(PRIVATE_NETWORKKEY ** network, request_set(&request, RQ_USER, STRING_UNKNOWN, 0); request_set(&request, RQ_DAEMON, daemon, 0); - if (! hosts_access(&request)) + if (! dcmtk_hosts_access(&request)) { #ifdef HAVE_WINSOCK_H (void) shutdown(sock, 1 /* SD_SEND */); diff --git a/dcmnet/libsrc/dwrap.c b/dcmnet/libsrc/dwrap.c new file mode 100644 index 0000000..b1782ce --- /dev/null +++ b/dcmnet/libsrc/dwrap.c @@ -0,0 +1,47 @@ +/* + * + * Copyright (C) 2012, OFFIS e.V. + * All rights reserved. See COPYRIGHT file for details. + * + * This software and supporting documentation were developed by + * + * OFFIS e.V. + * R&D Division Health + * Escherweg 2 + * D-26121 Oldenburg, Germany + * + * + * Module: dcmnet + * + * Author: Uli Schlachter + * + * Purpose: C wrappers for libwrap + * + */ + +#include "dcmtk/config/osconfig.h" /* make sure OS specific configuration is included first */ + +#ifdef WITH_TCPWRAPPER +#include /* for hosts_ctl */ +#include +#endif + +/* libwrap expects that two global flags, deny_severity and allow_severity, + * are defined and initialized by user code. If these flags are already present + * somewhere else, compile DCMTK with TCPWRAPPER_SEVERITY_EXTERN defined + * to avoid linker errors due to duplicate symbols. + */ +#ifndef TCPWRAPPER_SEVERITY_EXTERN +int deny_severity = LOG_WARNING; +int allow_severity = LOG_INFO; +#endif + +#ifdef WITH_TCPWRAPPER +/* We cannot include dul.h from C, so just repeat the prototype here */ +int dcmtk_hosts_access(struct request_info *req); + +int dcmtk_hosts_access(struct request_info *req) +{ + return hosts_access(req); +} +#endif