Lines Matching refs:chan

55 version_rename(log_channel chan) {  in version_rename()  argument
60 ver = chan->out.file.versions; in version_rename()
68 if (strlen(chan->out.file.name) > (size_t)(PATH_MAX-3)) in version_rename()
71 sprintf(old_name, "%s.%d", chan->out.file.name, ver-1); in version_rename()
72 sprintf(new_name, "%s.%d", chan->out.file.name, ver); in version_rename()
75 sprintf(new_name, "%s.0", chan->out.file.name); in version_rename()
76 (void)isc_movefile(chan->out.file.name, new_name); in version_rename()
80 log_open_stream(log_channel chan) { in log_open_stream() argument
86 if (chan == NULL || chan->type != log_file) { in log_open_stream()
94 if (chan->out.file.stream != NULL) in log_open_stream()
95 return (chan->out.file.stream); in log_open_stream()
97 if (stat(chan->out.file.name, &sb) < 0) { in log_open_stream()
101 chan->out.file.name, strerror(errno)); in log_open_stream()
102 chan->flags |= LOG_CHANNEL_BROKEN; in log_open_stream()
109 if (chan->out.file.versions) { in log_open_stream()
113 chan->out.file.name); in log_open_stream()
114 chan->flags |= LOG_CHANNEL_BROKEN; in log_open_stream()
122 if ((chan->flags & LOG_TRUNCATE) != 0) { in log_open_stream()
124 (void)unlink(chan->out.file.name); in log_open_stream()
129 chan->out.file.name); in log_open_stream()
130 chan->flags |= LOG_CHANNEL_BROKEN; in log_open_stream()
136 fd = open(chan->out.file.name, flags, in log_open_stream()
140 chan->out.file.name, strerror(errno)); in log_open_stream()
141 chan->flags |= LOG_CHANNEL_BROKEN; in log_open_stream()
147 chan->flags |= LOG_CHANNEL_BROKEN; in log_open_stream()
150 (void) fchown(fd, chan->out.file.owner, chan->out.file.group); in log_open_stream()
152 chan->out.file.stream = stream; in log_open_stream()
157 log_close_stream(log_channel chan) { in log_close_stream() argument
160 if (chan == NULL || chan->type != log_file) { in log_close_stream()
164 stream = chan->out.file.stream; in log_close_stream()
165 chan->out.file.stream = NULL; in log_close_stream()
185 log_get_stream(log_channel chan) { in log_get_stream() argument
186 if (chan == NULL || chan->type != log_file) { in log_get_stream()
190 return (chan->out.file.stream); in log_get_stream()
194 log_get_filename(log_channel chan) { in log_get_filename() argument
195 if (chan == NULL || chan->type != log_file) { in log_get_filename()
199 return (chan->out.file.name); in log_get_filename()
203 log_check_channel(log_context lc, int level, log_channel chan) { in log_check_channel() argument
216 if ((chan->flags & (LOG_CHANNEL_BROKEN|LOG_CHANNEL_OFF)) != 0) in log_check_channel()
220 if ((chan->flags & LOG_REQUIRE_DEBUG) && !debugging) in log_check_channel()
224 if ((chan->flags & LOG_USE_CONTEXT_LEVEL) != 0) { in log_check_channel()
227 chan_level = chan->level; in log_check_channel()
272 log_channel chan; in log_vwrite() local
350 chan = lcl->channel; in log_vwrite()
352 if (!log_check_channel(lc, level, chan)) in log_vwrite()
365 switch (chan->type) { in log_vwrite()
371 syslog(chan->out.facility|syslog_priority[pri], in log_vwrite()
373 (chan->flags & LOG_TIMESTAMP) ? time_buf : "", in log_vwrite()
374 (chan->flags & LOG_PRINT_CATEGORY) ? in log_vwrite()
376 (chan->flags & LOG_PRINT_LEVEL) ? in log_vwrite()
381 stream = chan->out.file.stream; in log_vwrite()
383 stream = log_open_stream(chan); in log_vwrite()
387 if (chan->out.file.max_size != ULONG_MAX) { in log_vwrite()
393 chan->out.file.max_size) { in log_vwrite()
400 log_close_stream(chan); in log_vwrite()
401 version_rename(chan); in log_vwrite()
402 stream = log_open_stream(chan); in log_vwrite()
408 (chan->flags & LOG_TIMESTAMP) ? time_buf : "", in log_vwrite()
409 (chan->flags & LOG_PRINT_CATEGORY) ? in log_vwrite()
411 (chan->flags & LOG_PRINT_LEVEL) ? in log_vwrite()
466 log_channel chan; in log_free_context() local
474 chan = lcl->channel; in log_free_context()
475 (void)log_free_channel(chan); in log_free_context()
484 log_add_channel(log_context lc, int category, log_channel chan) { in log_add_channel() argument
497 lcl->channel = chan; in log_add_channel()
500 chan->references++; in log_add_channel()
505 log_remove_channel(log_context lc, int category, log_channel chan) { in log_remove_channel() argument
518 if (lcl->channel == chan) { in log_remove_channel()
519 log_free_channel(chan); in log_remove_channel()
577 log_channel chan; in log_new_syslog_channel() local
579 chan = memget(sizeof (struct log_channel)); in log_new_syslog_channel()
580 if (chan == NULL) { in log_new_syslog_channel()
584 chan->type = log_syslog; in log_new_syslog_channel()
585 chan->flags = flags; in log_new_syslog_channel()
586 chan->level = level; in log_new_syslog_channel()
587 chan->out.facility = facility; in log_new_syslog_channel()
588 chan->references = 0; in log_new_syslog_channel()
589 return (chan); in log_new_syslog_channel()
596 log_channel chan; in log_new_file_channel() local
598 chan = memget(sizeof (struct log_channel)); in log_new_file_channel()
599 if (chan == NULL) { in log_new_file_channel()
603 chan->type = log_file; in log_new_file_channel()
604 chan->flags = flags; in log_new_file_channel()
605 chan->level = level; in log_new_file_channel()
615 chan->out.file.name_size = ((len / 256) + 1) * 256; in log_new_file_channel()
616 chan->out.file.name = memget(chan->out.file.name_size); in log_new_file_channel()
617 if (chan->out.file.name == NULL) { in log_new_file_channel()
618 memput(chan, sizeof (struct log_channel)); in log_new_file_channel()
623 strcpy(chan->out.file.name, name); in log_new_file_channel()
625 chan->out.file.name_size = 0; in log_new_file_channel()
626 chan->out.file.name = NULL; in log_new_file_channel()
628 chan->out.file.stream = stream; in log_new_file_channel()
629 chan->out.file.versions = versions; in log_new_file_channel()
630 chan->out.file.max_size = max_size; in log_new_file_channel()
631 chan->out.file.owner = getuid(); in log_new_file_channel()
632 chan->out.file.group = getgid(); in log_new_file_channel()
633 chan->references = 0; in log_new_file_channel()
634 return (chan); in log_new_file_channel()
638 log_set_file_owner(log_channel chan, uid_t owner, gid_t group) { in log_set_file_owner() argument
639 if (chan->type != log_file) { in log_set_file_owner()
643 chan->out.file.owner = owner; in log_set_file_owner()
644 chan->out.file.group = group; in log_set_file_owner()
650 log_channel chan; in log_new_null_channel() local
652 chan = memget(sizeof (struct log_channel)); in log_new_null_channel()
653 if (chan == NULL) { in log_new_null_channel()
657 chan->type = log_null; in log_new_null_channel()
658 chan->flags = LOG_CHANNEL_OFF; in log_new_null_channel()
659 chan->level = log_info; in log_new_null_channel()
660 chan->references = 0; in log_new_null_channel()
661 return (chan); in log_new_null_channel()
665 log_inc_references(log_channel chan) { in log_inc_references() argument
666 if (chan == NULL) { in log_inc_references()
670 chan->references++; in log_inc_references()
675 log_dec_references(log_channel chan) { in log_dec_references() argument
676 if (chan == NULL || chan->references <= 0) { in log_dec_references()
680 chan->references--; in log_dec_references()
685 log_get_channel_type(log_channel chan) { in log_get_channel_type() argument
686 REQUIRE(chan != NULL); in log_get_channel_type()
688 return (chan->type); in log_get_channel_type()
692 log_free_channel(log_channel chan) { in log_free_channel() argument
693 if (chan == NULL || chan->references <= 0) { in log_free_channel()
697 chan->references--; in log_free_channel()
698 if (chan->references == 0) { in log_free_channel()
699 if (chan->type == log_file) { in log_free_channel()
700 if ((chan->flags & LOG_CLOSE_STREAM) && in log_free_channel()
701 chan->out.file.stream != NULL) in log_free_channel()
702 (void)fclose(chan->out.file.stream); in log_free_channel()
703 if (chan->out.file.name != NULL) in log_free_channel()
704 memput(chan->out.file.name, in log_free_channel()
705 chan->out.file.name_size); in log_free_channel()
707 memput(chan, sizeof (struct log_channel)); in log_free_channel()