Lines Matching defs:lctx
37 #define VALID_CONTEXT(lctx) ISC_MAGIC_VALID(lctx, LCTX_MAGIC)
108 isc_log_t * lctx;
229 isc_log_doit(isc_log_t *lctx, isc_logcategory_t *category,
257 isc_log_t *lctx;
265 lctx = isc_mem_get(mctx, sizeof(*lctx));
266 if (lctx != NULL) {
267 lctx->mctx = NULL;
268 isc_mem_attach(mctx, &lctx->mctx);
269 lctx->categories = NULL;
270 lctx->category_count = 0;
271 lctx->modules = NULL;
272 lctx->module_count = 0;
273 lctx->debug_level = 0;
275 ISC_LIST_INIT(lctx->messages);
277 result = isc_mutex_init(&lctx->lock);
279 isc_mem_putanddetach(&mctx, lctx, sizeof(*lctx));
287 * If either fails, the lctx is destroyed and not returned
290 lctx->magic = LCTX_MAGIC;
292 isc_log_registercategories(lctx, isc_categories);
293 isc_log_registermodules(lctx, isc_modules);
294 result = isc_logconfig_create(lctx, &lcfg);
303 lctx->logconfig = lcfg;
305 *lctxp = lctx;
312 if (lctx != NULL)
313 isc_log_destroy(&lctx);
320 isc_logconfig_create(isc_log_t *lctx, isc_logconfig_t **lcfgp) {
327 REQUIRE(VALID_CONTEXT(lctx));
329 lcfg = isc_mem_get(lctx->mctx, sizeof(*lcfg));
332 lcfg->lctx = lctx;
412 isc_logconfig_get(isc_log_t *lctx) {
413 REQUIRE(VALID_CONTEXT(lctx));
415 ENSURE(lctx->logconfig != NULL);
417 return (lctx->logconfig);
421 isc_logconfig_use(isc_log_t *lctx, isc_logconfig_t *lcfg) {
425 REQUIRE(VALID_CONTEXT(lctx));
427 REQUIRE(lcfg->lctx == lctx);
430 * Ensure that lcfg->channellist_count == lctx->category_count.
438 LOCK(&lctx->lock);
440 old_cfg = lctx->logconfig;
441 lctx->logconfig = lcfg;
443 UNLOCK(&lctx->lock);
452 isc_log_t *lctx;
459 lctx = *lctxp;
460 mctx = lctx->mctx;
462 if (lctx->logconfig != NULL) {
463 lcfg = lctx->logconfig;
464 lctx->logconfig = NULL;
468 DESTROYLOCK(&lctx->lock);
470 while ((message = ISC_LIST_HEAD(lctx->messages)) != NULL) {
471 ISC_LIST_UNLINK(lctx->messages, message, link);
477 lctx->buffer[0] = '\0';
478 lctx->debug_level = 0;
479 lctx->categories = NULL;
480 lctx->category_count = 0;
481 lctx->modules = NULL;
482 lctx->module_count = 0;
483 lctx->mctx = NULL;
484 lctx->magic = 0;
486 isc_mem_putanddetach(&mctx, lctx, sizeof(*lctx));
508 REQUIRE(lcfg->lctx != NULL && lcfg->lctx->logconfig != lcfg);
510 mctx = lcfg->lctx->mctx;
546 isc_mem_free(lcfg->lctx->mctx, lcfg->tag);
558 isc_log_registercategories(isc_log_t *lctx, isc_logcategory_t categories[]) {
561 REQUIRE(VALID_CONTEXT(lctx));
572 if (lctx->categories == NULL)
573 lctx->categories = categories;
580 for (catp = lctx->categories; catp->name != NULL; )
598 catp->id = lctx->category_count++;
602 isc_log_categorybyname(isc_log_t *lctx, const char *name) {
605 REQUIRE(VALID_CONTEXT(lctx));
608 for (catp = lctx->categories; catp->name != NULL; )
625 isc_log_registermodules(isc_log_t *lctx, isc_logmodule_t modules[]) {
628 REQUIRE(VALID_CONTEXT(lctx));
639 if (lctx->modules == NULL)
640 lctx->modules = modules;
647 for (modp = lctx->modules; modp->name != NULL; )
665 modp->id = lctx->module_count++;
669 isc_log_modulebyname(isc_log_t *lctx, const char *name) {
672 REQUIRE(VALID_CONTEXT(lctx));
675 for (modp = lctx->modules; modp->name != NULL; )
712 mctx = lcfg->lctx->mctx;
782 isc_log_t *lctx;
790 lctx = lcfg->lctx;
792 REQUIRE(category == NULL || category->id < lctx->category_count);
793 REQUIRE(module == NULL || module->id < lctx->module_count);
811 for (i = 0; i < lctx->category_count; i++) {
821 isc_log_write(isc_log_t *lctx, isc_logcategory_t *category,
831 isc_log_doit(lctx, category, module, level, ISC_FALSE,
837 isc_log_vwrite(isc_log_t *lctx, isc_logcategory_t *category,
844 isc_log_doit(lctx, category, module, level, ISC_FALSE,
849 isc_log_write1(isc_log_t *lctx, isc_logcategory_t *category,
859 isc_log_doit(lctx, category, module, level, ISC_TRUE,
865 isc_log_vwrite1(isc_log_t *lctx, isc_logcategory_t *category,
872 isc_log_doit(lctx, category, module, level, ISC_TRUE,
877 isc_log_iwrite(isc_log_t *lctx, isc_logcategory_t *category,
889 isc_log_doit(lctx, category, module, level, ISC_FALSE,
895 isc_log_ivwrite(isc_log_t *lctx, isc_logcategory_t *category,
903 isc_log_doit(lctx, category, module, level, ISC_FALSE,
908 isc_log_iwrite1(isc_log_t *lctx, isc_logcategory_t *category,
920 isc_log_doit(lctx, category, module, level, ISC_TRUE,
926 isc_log_ivwrite1(isc_log_t *lctx, isc_logcategory_t *category,
934 isc_log_doit(lctx, category, module, level, ISC_TRUE,
939 isc_log_setcontext(isc_log_t *lctx) {
940 isc_lctx = lctx;
944 isc_log_setdebuglevel(isc_log_t *lctx, unsigned int level) {
947 REQUIRE(VALID_CONTEXT(lctx));
949 LOCK(&lctx->lock);
951 lctx->debug_level = level;
955 if (lctx->debug_level == 0)
956 for (channel = ISC_LIST_HEAD(lctx->logconfig->channels);
965 UNLOCK(&lctx->lock);
969 isc_log_getdebuglevel(isc_log_t *lctx) {
970 REQUIRE(VALID_CONTEXT(lctx));
972 return (lctx->debug_level);
995 isc_mem_free(lcfg->lctx->mctx, lcfg->tag);
996 lcfg->tag = isc_mem_strdup(lcfg->lctx->mctx, tag);
1002 isc_mem_free(lcfg->lctx->mctx, lcfg->tag);
1023 isc_log_closefilelogs(isc_log_t *lctx) {
1026 REQUIRE(VALID_CONTEXT(lctx));
1028 LOCK(&lctx->lock);
1029 for (channel = ISC_LIST_HEAD(lctx->logconfig->channels);
1038 UNLOCK(&lctx->lock);
1050 isc_log_t *lctx;
1055 lctx = lcfg->lctx;
1057 REQUIRE(category_id < lctx->category_count);
1058 REQUIRE(module == NULL || module->id < lctx->module_count);
1062 * Ensure lcfg->channellist_count == lctx->category_count.
1068 new_item = isc_mem_get(lctx->mctx, sizeof(*new_item));
1099 isc_log_t *lctx;
1104 lctx = lcfg->lctx;
1106 REQUIRE(lctx->category_count != 0);
1108 if (lctx->category_count == lcfg->channellist_count)
1111 bytes = lctx->category_count * sizeof(ISC_LIST(isc_logchannellist_t));
1113 lists = isc_mem_get(lctx->mctx, bytes);
1124 isc_mem_put(lctx->mctx, lcfg->channellists, bytes);
1128 lcfg->channellist_count = lctx->category_count;
1362 isc_log_wouldlog(isc_log_t *lctx, int level) {
1380 if (lctx == NULL || lctx->logconfig == NULL)
1383 return (ISC_TF(level <= lctx->logconfig->highest_level ||
1384 (lctx->logconfig->dynamic &&
1385 level <= lctx->debug_level)));
1389 isc_log_doit(isc_log_t *lctx, isc_logcategory_t *category,
1407 REQUIRE(lctx == NULL || VALID_CONTEXT(lctx));
1418 if (lctx == NULL)
1421 REQUIRE(category->id < lctx->category_count);
1422 REQUIRE(module->id < lctx->module_count);
1424 if (! isc_log_wouldlog(lctx, level))
1435 LOCK(&lctx->lock);
1437 lctx->buffer[0] = '\0';
1439 lcfg = lctx->logconfig;
1485 lctx->debug_level == 0)
1489 if (lctx->debug_level < level)
1524 if (lctx->buffer[0] == '\0') {
1525 (void)vsnprintf(lctx->buffer, sizeof(lctx->buffer),
1555 message = ISC_LIST_HEAD(lctx->messages);
1575 ISC_LIST_UNLINK(lctx->messages,
1578 isc_mem_put(lctx->mctx,
1591 if (strcmp(lctx->buffer, message->text)
1598 UNLOCK(&lctx->lock);
1610 strlen(lctx->buffer) + 1;
1611 message = isc_mem_get(lctx->mctx, size);
1619 strlcpy(message->text, lctx->buffer,
1625 ISC_LIST_APPEND(lctx->messages,
1705 lctx->buffer);
1750 lctx->buffer);
1760 UNLOCK(&lctx->lock);