Lines Matching refs:chan

59 version_rename(log_channel chan) {  in version_rename()  argument
64 ver = chan->out.file.versions; in version_rename()
72 if (strlen(chan->out.file.name) > (size_t)(PATH_MAX-3)) in version_rename()
75 sprintf(old_name, "%s.%d", chan->out.file.name, ver-1); in version_rename()
76 sprintf(new_name, "%s.%d", chan->out.file.name, ver); in version_rename()
79 sprintf(new_name, "%s.0", chan->out.file.name); in version_rename()
80 (void)isc_movefile(chan->out.file.name, new_name); in version_rename()
84 log_open_stream(log_channel chan) { in log_open_stream() argument
90 if (chan == NULL || chan->type != log_file) { in log_open_stream()
98 if (chan->out.file.stream != NULL) in log_open_stream()
99 return (chan->out.file.stream); in log_open_stream()
101 if (stat(chan->out.file.name, &sb) < 0) { in log_open_stream()
105 chan->out.file.name, strerror(errno)); in log_open_stream()
106 chan->flags |= LOG_CHANNEL_BROKEN; in log_open_stream()
113 if (chan->out.file.versions) { in log_open_stream()
117 chan->out.file.name); in log_open_stream()
118 chan->flags |= LOG_CHANNEL_BROKEN; in log_open_stream()
126 if ((chan->flags & LOG_TRUNCATE) != 0) { in log_open_stream()
128 (void)unlink(chan->out.file.name); in log_open_stream()
133 chan->out.file.name); in log_open_stream()
134 chan->flags |= LOG_CHANNEL_BROKEN; in log_open_stream()
140 fd = open(chan->out.file.name, flags, in log_open_stream()
144 chan->out.file.name, strerror(errno)); in log_open_stream()
145 chan->flags |= LOG_CHANNEL_BROKEN; in log_open_stream()
151 chan->flags |= LOG_CHANNEL_BROKEN; in log_open_stream()
154 (void) fchown(fd, chan->out.file.owner, chan->out.file.group); in log_open_stream()
156 chan->out.file.stream = stream; in log_open_stream()
161 log_close_stream(log_channel chan) { in log_close_stream() argument
164 if (chan == NULL || chan->type != log_file) { in log_close_stream()
168 stream = chan->out.file.stream; in log_close_stream()
169 chan->out.file.stream = NULL; in log_close_stream()
189 log_get_stream(log_channel chan) { in log_get_stream() argument
190 if (chan == NULL || chan->type != log_file) { in log_get_stream()
194 return (chan->out.file.stream); in log_get_stream()
198 log_get_filename(log_channel chan) { in log_get_filename() argument
199 if (chan == NULL || chan->type != log_file) { in log_get_filename()
203 return (chan->out.file.name); in log_get_filename()
207 log_check_channel(log_context lc, int level, log_channel chan) { in log_check_channel() argument
220 if ((chan->flags & (LOG_CHANNEL_BROKEN|LOG_CHANNEL_OFF)) != 0) in log_check_channel()
224 if ((chan->flags & LOG_REQUIRE_DEBUG) && !debugging) in log_check_channel()
228 if ((chan->flags & LOG_USE_CONTEXT_LEVEL) != 0) { in log_check_channel()
231 chan_level = chan->level; in log_check_channel()
276 log_channel chan; in log_vwrite() local
354 chan = lcl->channel; in log_vwrite()
356 if (!log_check_channel(lc, level, chan)) in log_vwrite()
369 switch (chan->type) { in log_vwrite()
375 syslog(chan->out.facility|syslog_priority[pri], in log_vwrite()
377 (chan->flags & LOG_TIMESTAMP) ? time_buf : "", in log_vwrite()
378 (chan->flags & LOG_PRINT_CATEGORY) ? in log_vwrite()
380 (chan->flags & LOG_PRINT_LEVEL) ? in log_vwrite()
385 stream = chan->out.file.stream; in log_vwrite()
387 stream = log_open_stream(chan); in log_vwrite()
391 if (chan->out.file.max_size != ULONG_MAX) { in log_vwrite()
397 chan->out.file.max_size) { in log_vwrite()
404 log_close_stream(chan); in log_vwrite()
405 version_rename(chan); in log_vwrite()
406 stream = log_open_stream(chan); in log_vwrite()
412 (chan->flags & LOG_TIMESTAMP) ? time_buf : "", in log_vwrite()
413 (chan->flags & LOG_PRINT_CATEGORY) ? in log_vwrite()
415 (chan->flags & LOG_PRINT_LEVEL) ? in log_vwrite()
470 log_channel chan; in log_free_context() local
478 chan = lcl->channel; in log_free_context()
479 (void)log_free_channel(chan); in log_free_context()
488 log_add_channel(log_context lc, int category, log_channel chan) { in log_add_channel() argument
501 lcl->channel = chan; in log_add_channel()
504 chan->references++; in log_add_channel()
509 log_remove_channel(log_context lc, int category, log_channel chan) { in log_remove_channel() argument
522 if (lcl->channel == chan) { in log_remove_channel()
523 log_free_channel(chan); in log_remove_channel()
581 log_channel chan; in log_new_syslog_channel() local
583 chan = memget(sizeof (struct log_channel)); in log_new_syslog_channel()
584 if (chan == NULL) { in log_new_syslog_channel()
588 chan->type = log_syslog; in log_new_syslog_channel()
589 chan->flags = flags; in log_new_syslog_channel()
590 chan->level = level; in log_new_syslog_channel()
591 chan->out.facility = facility; in log_new_syslog_channel()
592 chan->references = 0; in log_new_syslog_channel()
593 return (chan); in log_new_syslog_channel()
600 log_channel chan; in log_new_file_channel() local
602 chan = memget(sizeof (struct log_channel)); in log_new_file_channel()
603 if (chan == NULL) { in log_new_file_channel()
607 chan->type = log_file; in log_new_file_channel()
608 chan->flags = flags; in log_new_file_channel()
609 chan->level = level; in log_new_file_channel()
619 chan->out.file.name_size = ((len / 256) + 1) * 256; in log_new_file_channel()
620 chan->out.file.name = memget(chan->out.file.name_size); in log_new_file_channel()
621 if (chan->out.file.name == NULL) { in log_new_file_channel()
622 memput(chan, sizeof (struct log_channel)); in log_new_file_channel()
627 strcpy(chan->out.file.name, name); in log_new_file_channel()
629 chan->out.file.name_size = 0; in log_new_file_channel()
630 chan->out.file.name = NULL; in log_new_file_channel()
632 chan->out.file.stream = stream; in log_new_file_channel()
633 chan->out.file.versions = versions; in log_new_file_channel()
634 chan->out.file.max_size = max_size; in log_new_file_channel()
635 chan->out.file.owner = getuid(); in log_new_file_channel()
636 chan->out.file.group = getgid(); in log_new_file_channel()
637 chan->references = 0; in log_new_file_channel()
638 return (chan); in log_new_file_channel()
642 log_set_file_owner(log_channel chan, uid_t owner, gid_t group) { in log_set_file_owner() argument
643 if (chan->type != log_file) { in log_set_file_owner()
647 chan->out.file.owner = owner; in log_set_file_owner()
648 chan->out.file.group = group; in log_set_file_owner()
654 log_channel chan; in log_new_null_channel() local
656 chan = memget(sizeof (struct log_channel)); in log_new_null_channel()
657 if (chan == NULL) { in log_new_null_channel()
661 chan->type = log_null; in log_new_null_channel()
662 chan->flags = LOG_CHANNEL_OFF; in log_new_null_channel()
663 chan->level = log_info; in log_new_null_channel()
664 chan->references = 0; in log_new_null_channel()
665 return (chan); in log_new_null_channel()
669 log_inc_references(log_channel chan) { in log_inc_references() argument
670 if (chan == NULL) { in log_inc_references()
674 chan->references++; in log_inc_references()
679 log_dec_references(log_channel chan) { in log_dec_references() argument
680 if (chan == NULL || chan->references <= 0) { in log_dec_references()
684 chan->references--; in log_dec_references()
689 log_get_channel_type(log_channel chan) { in log_get_channel_type() argument
690 REQUIRE(chan != NULL); in log_get_channel_type()
692 return (chan->type); in log_get_channel_type()
696 log_free_channel(log_channel chan) { in log_free_channel() argument
697 if (chan == NULL || chan->references <= 0) { in log_free_channel()
701 chan->references--; in log_free_channel()
702 if (chan->references == 0) { in log_free_channel()
703 if (chan->type == log_file) { in log_free_channel()
704 if ((chan->flags & LOG_CLOSE_STREAM) && in log_free_channel()
705 chan->out.file.stream != NULL) in log_free_channel()
706 (void)fclose(chan->out.file.stream); in log_free_channel()
707 if (chan->out.file.name != NULL) in log_free_channel()
708 memput(chan->out.file.name, in log_free_channel()
709 chan->out.file.name_size); in log_free_channel()
711 memput(chan, sizeof (struct log_channel)); in log_free_channel()