Lines Matching +full:console +full:- +full:size
8 * http://www.apache.org/licenses/LICENSE-2.0
30 #include "console-server.h"
35 struct console *console; member
38 size_t size; member
45 static const char *default_filename = LOCALSTATEDIR "/log/obmc-console.log";
58 close(lh->fd); in log_trim()
59 rc = rename(lh->log_filename, lh->rotate_filename); in log_trim()
61 warn("Failed to rename %s to %s", lh->log_filename, in log_trim()
62 lh->rotate_filename); in log_trim()
63 /* don't return, as we need to re-open the logfile */ in log_trim()
66 lh->fd = open(lh->log_filename, O_WRONLY | O_CREAT | O_TRUNC, 0644); in log_trim()
67 if (lh->fd < 0) { in log_trim()
68 warn("Can't open log buffer file %s", lh->log_filename); in log_trim()
69 return -1; in log_trim()
72 lh->size = 0; in log_trim()
81 if (len > lh->maxsize) { in log_data()
82 buf += len - lh->maxsize; in log_data()
83 len = lh->maxsize; in log_data()
86 if (lh->size + len > lh->maxsize) { in log_data()
93 rc = write_buf_to_fd(lh->fd, buf, len); in log_data()
98 lh->size += len; in log_data()
114 len = ringbuffer_dequeue_peek(lh->rbc, 0, &buf); in log_ringbuffer_poll()
124 ringbuffer_dequeue_commit(lh->rbc, len); in log_ringbuffer_poll()
134 lh->fd = open(lh->log_filename, O_WRONLY | O_CREAT | O_APPEND, 0644); in log_create()
135 if (lh->fd < 0) { in log_create()
136 warn("Can't open log buffer file %s", lh->log_filename); in log_create()
137 return -1; in log_create()
139 pos = lseek(lh->fd, 0, SEEK_END); in log_create()
141 warn("Can't query log position for file %s", lh->log_filename); in log_create()
142 close(lh->fd); in log_create()
143 return -1; in log_create()
145 lh->size = pos; in log_create()
146 if ((size_t)pos >= lh->maxsize) { in log_create()
155 struct console *console, struct config *config) in log_init() argument
168 lh->console = console; in log_init()
169 lh->pagesize = 4096; in log_init()
170 lh->size = 0; in log_init()
171 lh->log_filename = NULL; in log_init()
172 lh->rotate_filename = NULL; in log_init()
181 lh->maxsize = logsize <= lh->pagesize ? lh->pagesize + 1 : logsize; in log_init()
183 filename = config_get_section_value(config, console->console_id, in log_init()
194 lh->log_filename = strdup(filename); in log_init()
196 rc = asprintf(&lh->rotate_filename, "%s.1", filename); in log_init()
206 lh->rbc = console_ringbuffer_consumer_register(console, in log_init()
209 return &lh->handler; in log_init()
212 free(lh->rotate_filename); in log_init()
213 free(lh->log_filename); in log_init()
221 ringbuffer_consumer_unregister(lh->rbc); in log_fini()
222 close(lh->fd); in log_fini()
223 free(lh->log_filename); in log_fini()
224 free(lh->rotate_filename); in log_fini()