Lines Matching refs:channel

62  * This is the structure that holds each named channel.  A simple linked
63 * list chains all of the channels together, so an individual channel is
93 isc_logchannel_t * channel;
162 * Used when ISC_LOG_PRINTLEVEL is enabled for a channel.
214 * because its channel member is pointed to a channel that is created
229 const isc_logmodule_t *module, isc_logchannel_t *channel);
235 greatest_version(isc_logchannel_t *channel, int *greatest);
238 roll_log(isc_logchannel_t *channel);
252 #define FACILITY(channel) (channel->destination.facility)
253 #define FILE_NAME(channel) (channel->destination.file.name)
254 #define FILE_STREAM(channel) (channel->destination.file.stream)
255 #define FILE_VERSIONS(channel) (channel->destination.file.versions)
256 #define FILE_MAXSIZE(channel) (channel->destination.file.maximum_size)
257 #define FILE_MAXREACHED(channel) (channel->destination.file.maximum_reached)
356 * config. If the channel creation fails, the lcfg is not
389 * Set the default category's channel to default_stderr,
393 default_channel.channel = ISC_LIST_HEAD(lcfg->channels);
506 isc_logchannel_t *channel;
523 while ((channel = ISC_LIST_HEAD(lcfg->channels)) != NULL) {
524 ISC_LIST_UNLINK(lcfg->channels, channel, link);
526 if (channel->type == ISC_LOG_TOFILE) {
528 * The filename for the channel may have ultimately
533 DE_CONST(FILE_NAME(channel), filename);
536 if (FILE_STREAM(channel) != NULL)
537 (void)fclose(FILE_STREAM(channel));
540 isc_mem_free(mctx, channel->name);
541 isc_mem_put(mctx, channel, sizeof(*channel));
708 isc_logchannel_t *channel;
724 channel = isc_mem_get(mctx, sizeof(*channel));
725 if (channel == NULL)
728 channel->name = isc_mem_strdup(mctx, name);
729 if (channel->name == NULL) {
730 isc_mem_put(mctx, channel, sizeof(*channel));
734 channel->type = type;
735 channel->level = level;
736 channel->flags = flags;
737 ISC_LINK_INIT(channel, link);
741 FACILITY(channel) = destination->facility;
750 FILE_NAME(channel) =
752 FILE_STREAM(channel) = NULL;
753 FILE_VERSIONS(channel) = destination->file.versions;
754 FILE_MAXSIZE(channel) = destination->file.maximum_size;
755 FILE_MAXREACHED(channel) = ISC_FALSE;
759 FILE_NAME(channel) = NULL;
760 FILE_STREAM(channel) = destination->file.stream;
761 FILE_MAXSIZE(channel) = 0;
762 FILE_VERSIONS(channel) = ISC_LOG_ROLLNEVER;
770 isc_mem_put(mctx, channel->name, strlen(channel->name) + 1);
771 isc_mem_put(mctx, channel, sizeof(*channel));
775 ISC_LIST_PREPEND(lcfg->channels, channel, link);
782 default_channel.channel = channel;
793 isc_logchannel_t *channel;
805 for (channel = ISC_LIST_HEAD(lcfg->channels); channel != NULL;
806 channel = ISC_LIST_NEXT(channel, link))
807 if (strcmp(name, channel->name) == 0)
810 if (channel == NULL)
814 result = assignchannel(lcfg, category->id, module, channel);
819 * the default channel.
822 result = assignchannel(lcfg, i, module, channel);
955 isc_logchannel_t *channel;
966 for (channel = ISC_LIST_HEAD(lctx->logconfig->channels);
967 channel != NULL;
968 channel = ISC_LIST_NEXT(channel, link))
969 if (channel->type == ISC_LOG_TOFILE &&
970 (channel->flags & ISC_LOG_DEBUGONLY) != 0 &&
971 FILE_STREAM(channel) != NULL) {
972 (void)fclose(FILE_STREAM(channel));
973 FILE_STREAM(channel) = NULL;
1034 isc_logchannel_t *channel;
1039 for (channel = ISC_LIST_HEAD(lctx->logconfig->channels);
1040 channel != NULL;
1041 channel = ISC_LIST_NEXT(channel, link))
1043 if (channel->type == ISC_LOG_TOFILE &&
1044 FILE_STREAM(channel) != NULL) {
1045 (void)fclose(FILE_STREAM(channel));
1046 FILE_STREAM(channel) = NULL;
1057 const isc_logmodule_t *module, isc_logchannel_t *channel)
1069 REQUIRE(channel != NULL);
1082 new_item->channel = channel;
1088 * Remember the highest logging level set by any channel in the
1090 * message is too high to be logged by any channel.
1092 if (channel->type != ISC_LOG_TONULL) {
1093 if (lcfg->highest_level < channel->level)
1094 lcfg->highest_level = channel->level;
1095 if (channel->level == ISC_LOG_DYNAMIC)
1144 greatest_version(isc_logchannel_t *channel, int *greatestp) {
1157 REQUIRE(channel->type == ISC_LOG_TOFILE);
1163 basenam = strrchr(FILE_NAME(channel), sep);
1165 basename2 = strrchr(FILE_NAME(channel), '\\');
1174 dirname = FILE_NAME(channel);
1176 DE_CONST(FILE_NAME(channel), basenam);
1187 if (basenam != FILE_NAME(channel))
1215 roll_log(isc_logchannel_t *channel) {
1227 if (FILE_VERSIONS(channel) == ISC_LOG_ROLLNEVER)
1230 path = FILE_NAME(channel);
1238 result = greatest_version(channel, &greatest);
1244 * Since the highest number is one less than FILE_VERSIONS(channel)
1247 * FILE_VERSIONS(channel). When greatest is less than
1248 * FILE_VERSIONS(channel), it is already suitable for use as
1252 if (FILE_VERSIONS(channel) == ISC_LOG_ROLLINFINITE ||
1253 FILE_VERSIONS(channel) > greatest)
1257 * When greatest is >= FILE_VERSIONS(channel), it needs to
1258 * be reduced until it is FILE_VERSIONS(channel) - 1.
1261 while (--greatest >= FILE_VERSIONS(channel)) {
1296 if (FILE_VERSIONS(channel) != 0) {
1319 isc_log_open(isc_logchannel_t *channel) {
1326 REQUIRE(channel->type == ISC_LOG_TOFILE);
1327 REQUIRE(FILE_STREAM(channel) == NULL);
1329 path = FILE_NAME(channel);
1341 if ((FILE_MAXSIZE(channel) == 0 &&
1342 FILE_VERSIONS(channel) != ISC_LOG_ROLLNEVER) ||
1343 (FILE_MAXSIZE(channel) > 0 &&
1344 statbuf.st_size >= FILE_MAXSIZE(channel)))
1356 if (FILE_VERSIONS(channel) == ISC_LOG_ROLLNEVER)
1358 result = roll_log(channel);
1360 if ((channel->flags & ISC_LOG_OPENERR) == 0) {
1364 FILE_NAME(channel),
1366 channel->flags |= ISC_LOG_OPENERR;
1372 result = isc_stdio_open(path, "a", &FILE_STREAM(channel));
1385 * highest_level, or if there is a dynamic channel and the level is
1420 isc_logchannel_t *channel;
1466 * If the channel list end was reached and a match was made,
1485 * default channel.
1498 channel = category_channels->channel;
1501 if (((channel->flags & ISC_LOG_DEBUGONLY) != 0) &&
1505 if (channel->level == ISC_LOG_DYNAMIC) {
1508 } else if (channel->level < level)
1511 if ((channel->flags & ISC_LOG_PRINTTIME) != 0 &&
1520 if ((channel->flags & ISC_LOG_PRINTLEVEL) != 0 &&
1645 printtime = ISC_TF((channel->flags & ISC_LOG_PRINTTIME)
1647 printtag = ISC_TF((channel->flags & ISC_LOG_PRINTTAG)
1649 printcategory = ISC_TF((channel->flags & ISC_LOG_PRINTCATEGORY)
1651 printmodule = ISC_TF((channel->flags & ISC_LOG_PRINTMODULE)
1653 printlevel = ISC_TF((channel->flags & ISC_LOG_PRINTLEVEL)
1656 switch (channel->type) {
1658 if (FILE_MAXREACHED(channel)) {
1668 if (FILE_VERSIONS(channel) !=
1670 (stat(FILE_NAME(channel), &statbuf) != 0 &&
1672 statbuf.st_size < FILE_MAXSIZE(channel)) {
1673 (void)fclose(FILE_STREAM(channel));
1674 FILE_STREAM(channel) = NULL;
1675 FILE_MAXREACHED(channel) = ISC_FALSE;
1683 if (FILE_STREAM(channel) == NULL) {
1684 result = isc_log_open(channel);
1687 (channel->flags & ISC_LOG_OPENERR) == 0) {
1690 FILE_NAME(channel),
1692 channel->flags |= ISC_LOG_OPENERR;
1696 channel->flags &= ~ISC_LOG_OPENERR;
1701 fprintf(FILE_STREAM(channel), "%s%s%s%s%s%s%s%s%s%s\n",
1715 fflush(FILE_STREAM(channel));
1722 if (FILE_MAXSIZE(channel) > 0) {
1723 INSIST(channel->type == ISC_LOG_TOFILE);
1727 if (fstat(fileno(FILE_STREAM(channel)),
1729 statbuf.st_size > FILE_MAXSIZE(channel))
1730 FILE_MAXREACHED(channel) = ISC_TRUE;
1743 (void)syslog(FACILITY(channel) | syslog_level,