2
0
mirror of https://gitlab.isc.org/isc-projects/bind9 synced 2025-08-31 14:35:26 +00:00

Remove message catalogs

This commit is contained in:
Ondřej Surý
2018-11-23 21:35:01 +01:00
parent f8965a5588
commit e2cdf066ea
67 changed files with 306 additions and 1760 deletions

View File

@@ -26,7 +26,7 @@ HEADERS = aes.h app.h assertions.h atomic.h backtrace.h \
hash.h heap.h hex.h hmac.h ht.h httpd.h \
interfaceiter.h iterated_hash.h \
json.h lang.h lex.h lfsr.h lib.h likely.h list.h log.h \
magic.h md.h mem.h meminfo.h msgcat.h msgs.h mutexblock.h \
magic.h md.h mem.h meminfo.h mutexblock.h \
netaddr.h netscope.h nonce.h os.h parseint.h \
pool.h portset.h print.h queue.h quota.h \
radix.h random.h ratelimiter.h refcount.h regex.h \

View File

@@ -20,15 +20,6 @@
ISC_LANG_BEGINDECLS
LIBISC_EXTERNAL_DATA extern isc_msgcat_t *isc_msgcat;
void
isc_lib_initmsgcat(void);
/*!<
* \brief Initialize the ISC library's message catalog, isc_msgcat, if it
* has not already been initialized.
*/
void
isc_lib_register(void);
/*!<

View File

@@ -544,9 +544,6 @@ isc_log_usechannel(isc_logconfig_t *lcfg, const char *name,
* Write a message to the log channels.
*
* Notes:
*\li Log messages containing natural language text should be logged with
* isc_log_iwrite() to allow for localization.
*
*\li lctx can be NULL; this is allowed so that programs which use
* libraries that use the ISC logging system are not required to
* also use it.
@@ -644,50 +641,6 @@ isc_log_vwrite1(isc_log_t *lctx, isc_logcategory_t *category,
ISC_FORMAT_PRINTF(5, 0);
/*%
* These are four internationalized versions of the isc_log_[v]write[1]
* functions.
*
* The only difference is that they take arguments for a message
* catalog, message set, and message number, all immediately preceding the
* format argument. The format argument becomes the default text, a la
* isc_msgcat_get. If the message catalog is NULL, no lookup is attempted
* for a message -- which makes the message set and message number irrelevant,
* and the non-internationalized call should have probably been used instead.
*
* Yes, that means there are now *eight* interfaces to logging a message.
* Sheesh. Make the madness stop!
*/
/*@{*/
void
isc_log_iwrite(isc_log_t *lctx, isc_logcategory_t *category,
isc_logmodule_t *module, int level,
isc_msgcat_t *msgcat, int msgset, int message,
const char *format, ...)
ISC_FORMAT_PRINTF(8, 9);
void
isc_log_ivwrite(isc_log_t *lctx, isc_logcategory_t *category,
isc_logmodule_t *module, int level,
isc_msgcat_t *msgcat, int msgset, int message,
const char *format, va_list args)
ISC_FORMAT_PRINTF(8, 0);
void
isc_log_iwrite1(isc_log_t *lctx, isc_logcategory_t *category,
isc_logmodule_t *module, int level,
isc_msgcat_t *msgcat, int msgset, int message,
const char *format, ...)
ISC_FORMAT_PRINTF(8, 9);
void
isc_log_ivwrite1(isc_log_t *lctx, isc_logcategory_t *category,
isc_logmodule_t *module, int level,
isc_msgcat_t *msgcat, int msgset, int message,
const char *format, va_list args)
ISC_FORMAT_PRINTF(8, 0);
/*@}*/
void
isc_log_setdebuglevel(isc_log_t *lctx, unsigned int level);
/*%<

View File

@@ -1,124 +0,0 @@
/*
* Copyright (C) Internet Systems Consortium, Inc. ("ISC")
*
* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at http://mozilla.org/MPL/2.0/.
*
* See the COPYRIGHT file distributed with this work for additional
* information regarding copyright ownership.
*/
#ifndef ISC_MSGCAT_H
#define ISC_MSGCAT_H 1
/*****
***** Module Info
*****/
/*! \file isc/msgcat.h
* \brief The ISC Message Catalog
* aids internationalization of applications by allowing
* messages to be retrieved from locale-specific files instead of
* hardwiring them into the application. This allows translations of
* messages appropriate to the locale to be supplied without recompiling
* the application.
*
* Notes:
*\li It's very important that message catalogs work, even if only the
* default_text can be used.
*
* MP:
*\li The caller must ensure appropriate synchronization of
* isc_msgcat_open() and isc_msgcat_close(). isc_msgcat_get()
* ensures appropriate synchronization.
*
* Reliability:
*\li No anticipated impact.
*
* Resources:
*\li TBS
*
* \li Security:
* No anticipated impact.
*
* \li Standards:
* None.
*/
/*****
***** Imports
*****/
#include <isc/lang.h>
#include <isc/types.h>
ISC_LANG_BEGINDECLS
/*****
***** Methods
*****/
void
isc_msgcat_open(const char *name, isc_msgcat_t **msgcatp);
/*%<
* Open a message catalog.
*
* Notes:
*
*\li If memory cannot be allocated or other failures occur, *msgcatp
* will be set to NULL. If a NULL msgcat is given to isc_msgcat_get(),
* the default_text will be returned, ensuring that some message text
* will be available, no matter what's going wrong.
*
* Requires:
*
*\li 'name' is a valid string.
*
*\li msgcatp != NULL && *msgcatp == NULL
*/
void
isc_msgcat_close(isc_msgcat_t **msgcatp);
/*%<
* Close a message catalog.
*
* Notes:
*
*\li Any string pointers returned by prior calls to isc_msgcat_get() are
* invalid after isc_msgcat_close() has been called and must not be
* used.
*
* Requires:
*
*\li *msgcatp is a valid message catalog or is NULL.
*
* Ensures:
*
*\li All resources associated with the message catalog are released.
*
*\li *msgcatp == NULL
*/
const char *
isc_msgcat_get(isc_msgcat_t *msgcat, int set, int message,
const char *default_text);
/*%<
* Get message 'message' from message set 'set' in 'msgcat'. If it
* is not available, use 'default_text'.
*
* Requires:
*
*\li 'msgcat' is a valid message catalog or is NULL.
*
*\li set > 0
*
*\li message > 0
*
*\li 'default_text' is a valid string.
*/
ISC_LANG_ENDDECLS
#endif /* ISC_MSGCAT_H */

View File

@@ -1,188 +0,0 @@
/*
* Copyright (C) Internet Systems Consortium, Inc. ("ISC")
*
* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at http://mozilla.org/MPL/2.0/.
*
* See the COPYRIGHT file distributed with this work for additional
* information regarding copyright ownership.
*/
#ifndef ISC_MSGS_H
#define ISC_MSGS_H 1
/*! \file isc/msgs.h */
#include <isc/lib.h> /* Provide isc_msgcat global variable. */
#include <isc/msgcat.h> /* Provide isc_msgcat_*() functions. */
/*@{*/
/*!
* \brief Message sets, named per source file, excepting "GENERAL".
*
* IMPORTANT: The original list is alphabetical, but any new sets must
* be added to the end.
*/
#define ISC_MSGSET_GENERAL 1
/* ISC_RESULT_RESULTSET 2 */ /* XXX */
/* ISC_RESULT_UNAVAILABLESET 3 */ /* XXX */
#define ISC_MSGSET_APP 4
#define ISC_MSGSET_COMMANDLINE 5
#define ISC_MSGSET_ENTROPY 6
#define ISC_MSGSET_IFITERIOCTL 7
#define ISC_MSGSET_IFITERSYSCTL 8
#define ISC_MSGSET_LEX 9
#define ISC_MSGSET_LOG 10
#define ISC_MSGSET_MEM 11
#define ISC_MSGSET_NETADDR 12
#define ISC_MSGSET_PRINT 13
#define ISC_MSGSET_RESULT 14
#define ISC_MSGSET_RWLOCK 15
#define ISC_MSGSET_SOCKADDR 16
#define ISC_MSGSET_SOCKET 17
#define ISC_MSGSET_TASK 18
#define ISC_MSGSET_TIMER 19
#define ISC_MSGSET_UTIL 20
#define ISC_MSGSET_IFITERGETIFADDRS 21
/*@}*/
/*@{*/
/*!
* Message numbers
* are only required to be unique per message set,
* but are unique throughout the entire catalog to not be as confusing when
* debugging.
*
* The initial numbering was done by multiply by 100 the set number the
* message appears in then adding the incremental message number.
*/
#define ISC_MSG_FAILED 101 /*%< "failed" */
#define ISC_MSG_SUCCEEDED 102 /*%< Compatible with "failed" */
#define ISC_MSG_SUCCESS 103 /*%< More usual way to say "success" */
#define ISC_MSG_STARTING 104 /*%< As in "daemon: starting" */
#define ISC_MSG_STOPING 105 /*%< As in "daemon: stopping" */
#define ISC_MSG_ENTERING 106 /*%< As in "some_subr: entering" */
#define ISC_MSG_EXITING 107 /*%< As in "some_subr: exiting" */
#define ISC_MSG_CALLING 108 /*%< As in "calling some_subr()" */
#define ISC_MSG_RETURNED 109 /*%< As in "some_subr: returned <foo>" */
#define ISC_MSG_FATALERROR 110 /*%< "fatal error" */
#define ISC_MSG_SHUTTINGDOWN 111 /*%< "shutting down" */
#define ISC_MSG_RUNNING 112 /*%< "running" */
#define ISC_MSG_WAIT 113 /*%< "wait" */
#define ISC_MSG_WAITUNTIL 114 /*%< "waituntil" */
#define ISC_MSG_SIGNALSETUP 201 /*%< "handle_signal() %d setup: %s" */
#define ISC_MSG_ILLEGALOPT 301 /*%< "illegal option" */
#define ISC_MSG_OPTNEEDARG 302 /*%< "option requires an argument" */
#define ISC_MSG_ENTROPYSTATS 401 /*%< "Entropy pool %p: refcnt %u ..." */
#define ISC_MSG_MAKESCANSOCKET 501 /*%< "making interface scan socket: %s" */
#define ISC_MSG_GETIFCONFIG 502 /*%< "get interface configuration: %s" */
#define ISC_MSG_BUFFERMAX 503 /*%< "... maximum buffer size exceeded" */
#define ISC_MSG_GETDESTADDR 504 /*%< "%s: getting destination address: %s" */
#define ISC_MSG_GETNETMASK 505 /*%< "%s: getting netmask: %s" */
#define ISC_MSG_GETIFLISTSIZE 601 /*%< "getting interface list size: ..." */
#define ISC_MSG_GETIFLIST 602 /*%< "getting interface list: ..." */
#define ISC_MSG_UNEXPECTEDTYPE 603 /*%< "... unexpected ... message type" */
#define ISC_MSG_UNEXPECTEDSTATE 701 /*%< "Unexpected state %d" */
#define ISC_MSG_BADTIME 801 /*%< "Bad 00 99:99:99.999 " */
#define ISC_MSG_LEVEL 802 /*%< "level %d: " */
#define ISC_MSG_ADDTRACE 901 /*%< "add %p size %u " */
#define ISC_MSG_DELTRACE 902 /*%< "del %p size %u " */
#define ISC_MSG_POOLSTATS 903 /*%< "[Pool statistics]\n" */
#define ISC_MSG_POOLNAME 904 /*%< "name" */
#define ISC_MSG_POOLSIZE 905 /*%< "size" */
#define ISC_MSG_POOLMAXALLOC 906 /*%< "maxalloc" */
#define ISC_MSG_POOLALLOCATED 907 /*%< "allocated" */
#define ISC_MSG_POOLFREECOUNT 908 /*%< "freecount" */
#define ISC_MSG_POOLFREEMAX 909 /*%< "freemax" */
#define ISC_MSG_POOLFILLCOUNT 910 /*%< "fillcount" */
#define ISC_MSG_POOLGETS 911 /*%< "gets" */
#define ISC_MSG_DUMPALLOC 912 /*%< "DUMP OF ALL OUTSTANDING MEMORY ..." */
#define ISC_MSG_NONE 913 /*%< "\tNone.\n" */
#define ISC_MSG_PTRFILELINE 914 /*%< "\tptr %p file %s line %u\n" */
#define ISC_MSG_UNKNOWNADDR 1001 /*%< "<unknown address, family %u>" */
#define ISC_MSG_NOLONGDBL 1104 /*%< "long doubles are not supported" */
#define ISC_MSG_PRINTLOCK 1201 /*%< "rwlock %p thread %lu ..." */
#define ISC_MSG_READ 1202 /*%< "read" */
#define ISC_MSG_WRITE 1203 /*%< "write" */
#define ISC_MSG_READING 1204 /*%< "reading" */
#define ISC_MSG_WRITING 1205 /*%< "writing" */
#define ISC_MSG_PRELOCK 1206 /*%< "prelock" */
#define ISC_MSG_POSTLOCK 1207 /*%< "postlock" */
#define ISC_MSG_PREUNLOCK 1208 /*%< "preunlock" */
#define ISC_MSG_POSTUNLOCK 1209 /*%< "postunlock" */
#define ISC_MSG_PRINTLOCK2 1210 /*%< "rwlock %p thread %lu ..." w/ atomic */
#define ISC_MSG_UNKNOWNFAMILY 1301 /*%< "unknown address family: %d" */
#define ISC_MSG_WRITEFAILED 1401 /*%< "write() failed during watcher ..." */
#define ISC_MSG_READFAILED 1402 /*%< "read() failed during watcher ... " */
#define ISC_MSG_PROCESSCMSG 1403 /*%< "processing cmsg %p" */
#define ISC_MSG_IFRECEIVED 1404 /*%< "interface received on ifindex %u" */
#define ISC_MSG_SENDTODATA 1405 /*%< "sendto pktinfo data, ifindex %u" */
#define ISC_MSG_DOIORECV 1406 /*%< "doio_recv: recvmsg(%d) %d bytes ..." */
#define ISC_MSG_PKTRECV 1407 /*%< "packet received correctly" */
#define ISC_MSG_DESTROYING 1408 /*%< "destroying" */
#define ISC_MSG_CREATED 1409 /*%< "created" */
#define ISC_MSG_ACCEPTLOCK 1410 /*%< "internal_accept called, locked ..." */
#define ISC_MSG_ACCEPTEDCXN 1411 /*%< "accepted connection, new socket %p" */
#define ISC_MSG_INTERNALRECV 1412 /*%< "internal_recv: task %p got event %p" */
#define ISC_MSG_INTERNALSEND 1413 /*%< "internal_send: task %p got event %p" */
#define ISC_MSG_WATCHERMSG 1414 /*%< "watcher got message %d" */
#define ISC_MSG_SOCKETSREMAIN 1415 /*%< "sockets exist" */
#define ISC_MSG_PKTINFOPROVIDED 1416 /*%< "pktinfo structure provided, ..." */
#define ISC_MSG_BOUND 1417 /*%< "bound" */
#define ISC_MSG_ACCEPTRETURNED 1418 /*%< accept() returned %d/%s */
#define ISC_MSG_TOOMANYFDS 1419 /*%< %s: too many open file descriptors */
#define ISC_MSG_ZEROPORT 1420 /*%< dropping source port zero packet */
#define ISC_MSG_FILTER 1421 /*%< setsockopt(SO_ACCEPTFILTER): %s */
#define ISC_MSG_TOOMANYHANDLES 1422 /*%< %s: too many open WSA event handles: %s */
#define ISC_MSG_POKED 1423 /*%< "poked flags: %d" */
#define ISC_MSG_AWAKE 1502 /*%< "awake" */
#define ISC_MSG_WORKING 1503 /*%< "working" */
#define ISC_MSG_EXECUTE 1504 /*%< "execute action" */
#define ISC_MSG_EMPTY 1505 /*%< "empty" */
#define ISC_MSG_DONE 1506 /*%< "done" */
#define ISC_MSG_QUANTUM 1507 /*%< "quantum" */
#define ISC_MSG_SCHEDULE 1601 /*%< "schedule" */
#define ISC_MSG_SIGNALSCHED 1602 /*%< "signal (schedule)" */
#define ISC_MSG_SIGNALDESCHED 1603 /*%< "signal (deschedule)" */
#define ISC_MSG_SIGNALDESTROY 1604 /*%< "signal (destroy)" */
#define ISC_MSG_IDLERESCHED 1605 /*%< "idle reschedule" */
#define ISC_MSG_EVENTNOTALLOC 1606 /*%< "couldn't allocate event" */
#define ISC_MSG_SCHEDFAIL 1607 /*%< "couldn't schedule timer: %u" */
#define ISC_MSG_POSTING 1608 /*%< "posting" */
#define ISC_MSG_WAKEUP 1609 /*%< "wakeup" */
#define ISC_MSG_LOCK 1701 /*%< "LOCK" */
#define ISC_MSG_LOCKING 1702 /*%< "LOCKING" */
#define ISC_MSG_LOCKED 1703 /*%< "LOCKED" */
#define ISC_MSG_UNLOCKED 1704 /*%< "UNLOCKED" */
#define ISC_MSG_RWLOCK 1705 /*%< "RWLOCK" */
#define ISC_MSG_RWLOCKED 1706 /*%< "RWLOCKED" */
#define ISC_MSG_RWUNLOCK 1707 /*%< "RWUNLOCK" */
#define ISC_MSG_BROADCAST 1708 /*%< "BROADCAST" */
#define ISC_MSG_SIGNAL 1709 /*%< "SIGNAL" */
#define ISC_MSG_UTILWAIT 1710 /*%< "WAIT" */
#define ISC_MSG_WAITED 1711 /*%< "WAITED" */
#define ISC_MSG_GETIFADDRS 1801 /*%< "getting interface addresses: ..." */
/*@}*/
#endif /* ISC_MSGS_H */

View File

@@ -106,11 +106,11 @@ isc_result_toid(isc_result_t);
isc_result_t
isc_result_register(unsigned int base, unsigned int nresults,
const char **text, isc_msgcat_t *msgcat, int set);
const char **text, int set);
isc_result_t
isc_result_registerids(unsigned int base, unsigned int nresults,
const char **ids, isc_msgcat_t *msgcat, int set);
const char **ids, int set);
ISC_LANG_ENDDECLS

View File

@@ -58,7 +58,6 @@ typedef struct isc_logconfig isc_logconfig_t; /*%< Log Configuration */
typedef struct isc_logmodule isc_logmodule_t; /*%< Log Module */
typedef struct isc_mem isc_mem_t; /*%< Memory */
typedef struct isc_mempool isc_mempool_t; /*%< Memory Pool */
typedef struct isc_msgcat isc_msgcat_t; /*%< Message Catalog */
typedef struct isc_netaddr isc_netaddr_t; /*%< Net Address */
typedef struct isc_portset isc_portset_t; /*%< Port Set */
typedef struct isc_quota isc_quota_t; /*%< Quota */

View File

@@ -81,7 +81,6 @@
#ifdef ISC_UTIL_TRACEON
#define ISC_UTIL_TRACE(a) a
#include <stdio.h> /* Required for fprintf/stderr when tracing. */
#include <isc/msgs.h> /* Required for isc_msgcat when tracing. */
#else
#define ISC_UTIL_TRACE(a)
#endif
@@ -89,53 +88,35 @@
#include <isc/result.h> /* Contractual promise. */
#define LOCK(lp) do { \
ISC_UTIL_TRACE(fprintf(stderr, "%s %p %s %d\n", \
isc_msgcat_get(isc_msgcat, ISC_MSGSET_UTIL, \
ISC_MSG_LOCKING, "LOCKING"), \
ISC_UTIL_TRACE(fprintf(stderr, "LOCKING %p %s %d\n", \
(lp), __FILE__, __LINE__)); \
RUNTIME_CHECK(isc_mutex_lock((lp)) == ISC_R_SUCCESS); \
ISC_UTIL_TRACE(fprintf(stderr, "%s %p %s %d\n", \
isc_msgcat_get(isc_msgcat, ISC_MSGSET_UTIL, \
ISC_MSG_LOCKED, "LOCKED"), \
ISC_UTIL_TRACE(fprintf(stderr, "LOCKED %p %s %d\n", \
(lp), __FILE__, __LINE__)); \
} while (0)
#define UNLOCK(lp) do { \
RUNTIME_CHECK(isc_mutex_unlock((lp)) == ISC_R_SUCCESS); \
ISC_UTIL_TRACE(fprintf(stderr, "%s %p %s %d\n", \
isc_msgcat_get(isc_msgcat, ISC_MSGSET_UTIL, \
ISC_MSG_UNLOCKED, "UNLOCKED"), \
ISC_UTIL_TRACE(fprintf(stderr, "UNLOCKED %p %s %d\n", \
(lp), __FILE__, __LINE__)); \
} while (0)
#define BROADCAST(cvp) do { \
ISC_UTIL_TRACE(fprintf(stderr, "%s %p %s %d\n", \
isc_msgcat_get(isc_msgcat, ISC_MSGSET_UTIL, \
ISC_MSG_BROADCAST, "BROADCAST"),\
ISC_UTIL_TRACE(fprintf(stderr, "BROADCAST %p %s %d\n", \
(cvp), __FILE__, __LINE__)); \
RUNTIME_CHECK(isc_condition_broadcast((cvp)) == ISC_R_SUCCESS); \
} while (0)
#define SIGNAL(cvp) do { \
ISC_UTIL_TRACE(fprintf(stderr, "%s %p %s %d\n", \
isc_msgcat_get(isc_msgcat, ISC_MSGSET_UTIL, \
ISC_MSG_SIGNAL, "SIGNAL"), \
ISC_UTIL_TRACE(fprintf(stderr, "SIGNAL %p %s %d\n", \
(cvp), __FILE__, __LINE__)); \
RUNTIME_CHECK(isc_condition_signal((cvp)) == ISC_R_SUCCESS); \
} while (0)
#define WAIT(cvp, lp) do { \
ISC_UTIL_TRACE(fprintf(stderr, "%s %p %s %p %s %d\n", \
isc_msgcat_get(isc_msgcat, ISC_MSGSET_UTIL, \
ISC_MSG_UTILWAIT, "WAIT"), \
ISC_UTIL_TRACE(fprintf(stderr, "WAIT %p LOCK %p %s %d\n", \
(cvp), \
isc_msgcat_get(isc_msgcat, ISC_MSGSET_UTIL, \
ISC_MSG_LOCK, "LOCK"), \
(lp), __FILE__, __LINE__)); \
RUNTIME_CHECK(isc_condition_wait((cvp), (lp)) == ISC_R_SUCCESS); \
ISC_UTIL_TRACE(fprintf(stderr, "%s %p %s %p %s %d\n", \
isc_msgcat_get(isc_msgcat, ISC_MSGSET_UTIL, \
ISC_MSG_WAITED, "WAITED"), \
ISC_UTIL_TRACE(fprintf(stderr, "WAITED %p LOCKED %p %s %d\n", \
(cvp), \
isc_msgcat_get(isc_msgcat, ISC_MSGSET_UTIL, \
ISC_MSG_LOCKED, "LOCKED"), \
(lp), __FILE__, __LINE__)); \
} while (0)
@@ -150,20 +131,14 @@
isc_condition_waituntil((cvp), (lp), (tp))
#define RWLOCK(lp, t) do { \
ISC_UTIL_TRACE(fprintf(stderr, "%s %p, %d %s %d\n", \
isc_msgcat_get(isc_msgcat, ISC_MSGSET_UTIL, \
ISC_MSG_RWLOCK, "RWLOCK"), \
ISC_UTIL_TRACE(fprintf(stderr, "RWLOCK %p, %d %s %d\n", \
(lp), (t), __FILE__, __LINE__)); \
RUNTIME_CHECK(isc_rwlock_lock((lp), (t)) == ISC_R_SUCCESS); \
ISC_UTIL_TRACE(fprintf(stderr, "%s %p, %d %s %d\n", \
isc_msgcat_get(isc_msgcat, ISC_MSGSET_UTIL, \
ISC_MSG_RWLOCKED, "RWLOCKED"), \
ISC_UTIL_TRACE(fprintf(stderr, "RWLOCKED %p, %d %s %d\n", \
(lp), (t), __FILE__, __LINE__)); \
} while (0)
#define RWUNLOCK(lp, t) do { \
ISC_UTIL_TRACE(fprintf(stderr, "%s %p, %d %s %d\n", \
isc_msgcat_get(isc_msgcat, ISC_MSGSET_UTIL, \
ISC_MSG_RWUNLOCK, "RWUNLOCK"), \
ISC_UTIL_TRACE(fprintf(stderr, "RWUNLOCK %p, %d %s %d\n", \
(lp), (t), __FILE__, __LINE__)); \
RUNTIME_CHECK(isc_rwlock_unlock((lp), (t)) == ISC_R_SUCCESS); \
} while (0)

View File

@@ -35,11 +35,6 @@
ISC_LANG_BEGINDECLS
LIBISC_EXTERNAL_DATA extern isc_msgcat_t *pk11_msgcat;
void
pk11_initmsgcat(void);
const char *
pk11_result_totext(isc_result_t);