Lines Matching refs:channel
64 * This is the structure that holds each named channel. A simple linked
65 * list chains all of the channels together, so an individual channel is
95 isc_logchannel_t * channel;
164 * Used when ISC_LOG_PRINTLEVEL is enabled for a channel.
216 * because its channel member is pointed to a channel that is created
231 const isc_logmodule_t *module, isc_logchannel_t *channel);
237 greatest_version(isc_logchannel_t *channel, int *greatest);
240 roll_log(isc_logchannel_t *channel);
254 #define FACILITY(channel) (channel->destination.facility)
255 #define FILE_NAME(channel) (channel->destination.file.name)
256 #define FILE_STREAM(channel) (channel->destination.file.stream)
257 #define FILE_VERSIONS(channel) (channel->destination.file.versions)
258 #define FILE_MAXSIZE(channel) (channel->destination.file.maximum_size)
259 #define FILE_MAXREACHED(channel) (channel->destination.file.maximum_reached)
358 * config. If the channel creation fails, the lcfg is not
391 * Set the default category's channel to default_stderr,
395 default_channel.channel = ISC_LIST_HEAD(lcfg->channels);
508 isc_logchannel_t *channel;
525 while ((channel = ISC_LIST_HEAD(lcfg->channels)) != NULL) {
526 ISC_LIST_UNLINK(lcfg->channels, channel, link);
528 if (channel->type == ISC_LOG_TOFILE) {
530 * The filename for the channel may have ultimately
535 DE_CONST(FILE_NAME(channel), filename);
538 if (FILE_STREAM(channel) != NULL)
539 (void)fclose(FILE_STREAM(channel));
542 isc_mem_free(mctx, channel->name);
543 isc_mem_put(mctx, channel, sizeof(*channel));
710 isc_logchannel_t *channel;
726 channel = isc_mem_get(mctx, sizeof(*channel));
727 if (channel == NULL)
730 channel->name = isc_mem_strdup(mctx, name);
731 if (channel->name == NULL) {
732 isc_mem_put(mctx, channel, sizeof(*channel));
736 channel->type = type;
737 channel->level = level;
738 channel->flags = flags;
739 ISC_LINK_INIT(channel, link);
743 FACILITY(channel) = destination->facility;
752 FILE_NAME(channel) =
754 FILE_STREAM(channel) = NULL;
755 FILE_VERSIONS(channel) = destination->file.versions;
756 FILE_MAXSIZE(channel) = destination->file.maximum_size;
757 FILE_MAXREACHED(channel) = ISC_FALSE;
761 FILE_NAME(channel) = NULL;
762 FILE_STREAM(channel) = destination->file.stream;
763 FILE_MAXSIZE(channel) = 0;
764 FILE_VERSIONS(channel) = ISC_LOG_ROLLNEVER;
772 isc_mem_put(mctx, channel->name, strlen(channel->name) + 1);
773 isc_mem_put(mctx, channel, sizeof(*channel));
777 ISC_LIST_PREPEND(lcfg->channels, channel, link);
784 default_channel.channel = channel;
795 isc_logchannel_t *channel;
807 for (channel = ISC_LIST_HEAD(lcfg->channels); channel != NULL;
808 channel = ISC_LIST_NEXT(channel, link))
809 if (strcmp(name, channel->name) == 0)
812 if (channel == NULL)
816 result = assignchannel(lcfg, category->id, module, channel);
821 * the default channel.
824 result = assignchannel(lcfg, i, module, channel);
957 isc_logchannel_t *channel;
968 for (channel = ISC_LIST_HEAD(lctx->logconfig->channels);
969 channel != NULL;
970 channel = ISC_LIST_NEXT(channel, link))
971 if (channel->type == ISC_LOG_TOFILE &&
972 (channel->flags & ISC_LOG_DEBUGONLY) != 0 &&
973 FILE_STREAM(channel) != NULL) {
974 (void)fclose(FILE_STREAM(channel));
975 FILE_STREAM(channel) = NULL;
1036 isc_logchannel_t *channel;
1041 for (channel = ISC_LIST_HEAD(lctx->logconfig->channels);
1042 channel != NULL;
1043 channel = ISC_LIST_NEXT(channel, link))
1045 if (channel->type == ISC_LOG_TOFILE &&
1046 FILE_STREAM(channel) != NULL) {
1047 (void)fclose(FILE_STREAM(channel));
1048 FILE_STREAM(channel) = NULL;
1059 const isc_logmodule_t *module, isc_logchannel_t *channel)
1071 REQUIRE(channel != NULL);
1084 new_item->channel = channel;
1090 * Remember the highest logging level set by any channel in the
1092 * message is too high to be logged by any channel.
1094 if (channel->type != ISC_LOG_TONULL) {
1095 if (lcfg->highest_level < channel->level)
1096 lcfg->highest_level = channel->level;
1097 if (channel->level == ISC_LOG_DYNAMIC)
1146 greatest_version(isc_logchannel_t *channel, int *greatestp) {
1159 REQUIRE(channel->type == ISC_LOG_TOFILE);
1165 basenam = strrchr(FILE_NAME(channel), sep);
1167 basename2 = strrchr(FILE_NAME(channel), '\\');
1176 dirname = FILE_NAME(channel);
1178 DE_CONST(FILE_NAME(channel), basenam);
1189 if (basenam != FILE_NAME(channel))
1217 roll_log(isc_logchannel_t *channel) {
1229 if (FILE_VERSIONS(channel) == ISC_LOG_ROLLNEVER)
1232 path = FILE_NAME(channel);
1240 result = greatest_version(channel, &greatest);
1246 * Since the highest number is one less than FILE_VERSIONS(channel)
1249 * FILE_VERSIONS(channel). When greatest is less than
1250 * FILE_VERSIONS(channel), it is already suitable for use as
1254 if (FILE_VERSIONS(channel) == ISC_LOG_ROLLINFINITE ||
1255 FILE_VERSIONS(channel) > greatest)
1259 * When greatest is >= FILE_VERSIONS(channel), it needs to
1260 * be reduced until it is FILE_VERSIONS(channel) - 1.
1263 while (--greatest >= FILE_VERSIONS(channel)) {
1298 if (FILE_VERSIONS(channel) != 0) {
1321 isc_log_open(isc_logchannel_t *channel) {
1328 REQUIRE(channel->type == ISC_LOG_TOFILE);
1329 REQUIRE(FILE_STREAM(channel) == NULL);
1331 path = FILE_NAME(channel);
1343 if ((FILE_MAXSIZE(channel) == 0 &&
1344 FILE_VERSIONS(channel) != ISC_LOG_ROLLNEVER) ||
1345 (FILE_MAXSIZE(channel) > 0 &&
1346 statbuf.st_size >= FILE_MAXSIZE(channel)))
1358 if (FILE_VERSIONS(channel) == ISC_LOG_ROLLNEVER)
1360 result = roll_log(channel);
1362 if ((channel->flags & ISC_LOG_OPENERR) == 0) {
1366 FILE_NAME(channel),
1368 channel->flags |= ISC_LOG_OPENERR;
1374 result = isc_stdio_open(path, "a", &FILE_STREAM(channel));
1387 * highest_level, or if there is a dynamic channel and the level is
1422 isc_logchannel_t *channel;
1468 * If the channel list end was reached and a match was made,
1487 * default channel.
1500 channel = category_channels->channel;
1503 if (((channel->flags & ISC_LOG_DEBUGONLY) != 0) &&
1507 if (channel->level == ISC_LOG_DYNAMIC) {
1510 } else if (channel->level < level)
1513 if ((channel->flags & ISC_LOG_PRINTTIME) != 0 &&
1522 if ((channel->flags & ISC_LOG_PRINTLEVEL) != 0 &&
1647 printtime = ISC_TF((channel->flags & ISC_LOG_PRINTTIME)
1649 printtag = ISC_TF((channel->flags & ISC_LOG_PRINTTAG)
1651 printcategory = ISC_TF((channel->flags & ISC_LOG_PRINTCATEGORY)
1653 printmodule = ISC_TF((channel->flags & ISC_LOG_PRINTMODULE)
1655 printlevel = ISC_TF((channel->flags & ISC_LOG_PRINTLEVEL)
1658 switch (channel->type) {
1660 if (FILE_MAXREACHED(channel)) {
1670 if (FILE_VERSIONS(channel) !=
1672 (stat(FILE_NAME(channel), &statbuf) != 0 &&
1674 statbuf.st_size < FILE_MAXSIZE(channel)) {
1675 (void)fclose(FILE_STREAM(channel));
1676 FILE_STREAM(channel) = NULL;
1677 FILE_MAXREACHED(channel) = ISC_FALSE;
1685 if (FILE_STREAM(channel) == NULL) {
1686 result = isc_log_open(channel);
1689 (channel->flags & ISC_LOG_OPENERR) == 0) {
1692 FILE_NAME(channel),
1694 channel->flags |= ISC_LOG_OPENERR;
1698 channel->flags &= ~ISC_LOG_OPENERR;
1703 fprintf(FILE_STREAM(channel), "%s%s%s%s%s%s%s%s%s%s\n",
1717 fflush(FILE_STREAM(channel));
1724 if (FILE_MAXSIZE(channel) > 0) {
1725 INSIST(channel->type == ISC_LOG_TOFILE);
1729 if (fstat(fileno(FILE_STREAM(channel)),
1731 statbuf.st_size > FILE_MAXSIZE(channel))
1732 FILE_MAXREACHED(channel) = ISC_TRUE;
1745 (void)syslog(FACILITY(channel) | syslog_level,