File:  [ELWIX - Embedded LightWeight unIX -] / embedaddon / ntp / lib / isc / lib.c
Revision 1.1.1.1 (vendor branch): download - view: text, annotated - select for diffs - revision graph
Tue May 29 12:08:38 2012 UTC (12 years, 1 month ago) by misho
Branches: ntp, MAIN
CVS tags: v4_2_6p5p0, v4_2_6p5, HEAD
ntp 4.2.6p5

    1: /*
    2:  * Copyright (C) 2004, 2005, 2007  Internet Systems Consortium, Inc. ("ISC")
    3:  * Copyright (C) 1999-2001  Internet Software Consortium.
    4:  *
    5:  * Permission to use, copy, modify, and/or distribute this software for any
    6:  * purpose with or without fee is hereby granted, provided that the above
    7:  * copyright notice and this permission notice appear in all copies.
    8:  *
    9:  * THE SOFTWARE IS PROVIDED "AS IS" AND ISC DISCLAIMS ALL WARRANTIES WITH
   10:  * REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
   11:  * AND FITNESS.  IN NO EVENT SHALL ISC BE LIABLE FOR ANY SPECIAL, DIRECT,
   12:  * INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
   13:  * LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE
   14:  * OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
   15:  * PERFORMANCE OF THIS SOFTWARE.
   16:  */
   17: 
   18: /* $Id: lib.c,v 1.1.1.1 2012/05/29 12:08:38 misho Exp $ */
   19: 
   20: /*! \file */
   21: 
   22: #include <config.h>
   23: 
   24: #include <stdio.h>
   25: #include <stdlib.h>
   26: 
   27: #include <isc/once.h>
   28: #include <isc/msgs.h>
   29: #include <isc/lib.h>
   30: 
   31: /***
   32:  *** Globals
   33:  ***/
   34: 
   35: LIBISC_EXTERNAL_DATA isc_msgcat_t *		isc_msgcat = NULL;
   36: 
   37: 
   38: /***
   39:  *** Private
   40:  ***/
   41: 
   42: static isc_once_t		msgcat_once = ISC_ONCE_INIT;
   43: 
   44: 
   45: /***
   46:  *** Functions
   47:  ***/
   48: 
   49: static void
   50: open_msgcat(void) {
   51: 	isc_msgcat_open("libisc.cat", &isc_msgcat);
   52: }
   53: 
   54: void
   55: isc_lib_initmsgcat(void) {
   56: 	isc_result_t result;
   57: 
   58: 	/*!
   59: 	 * Initialize the ISC library's message catalog, isc_msgcat, if it
   60: 	 * has not already been initialized.
   61: 	 */
   62: 
   63: 	result = isc_once_do(&msgcat_once, open_msgcat);
   64: 	if (result != ISC_R_SUCCESS) {
   65: 		/*
   66: 		 * Normally we'd use RUNTIME_CHECK() or FATAL_ERROR(), but
   67: 		 * we can't do that here, since they might call us!
   68: 		 * (Note that the catalog might be open anyway, so we might
   69: 		 * as well try to  provide an internationalized message.)
   70: 		 */
   71: 		fprintf(stderr, "%s:%d: %s: isc_once_do() %s.\n",
   72: 			__FILE__, __LINE__,
   73: 			isc_msgcat_get(isc_msgcat, ISC_MSGSET_GENERAL,
   74: 				       ISC_MSG_FATALERROR, "fatal error"),
   75: 			isc_msgcat_get(isc_msgcat, ISC_MSGSET_GENERAL,
   76: 				       ISC_MSG_FAILED, "failed"));
   77: 		abort();
   78: 	}
   79: }

FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>