Lines Matching refs:slr

428     sync_log_reader_t *slr = xzmalloc(sizeof(sync_log_reader_t));  in sync_log_reader_alloc()  local
429 slr->fd = -1; in sync_log_reader_alloc()
430 return slr; in sync_log_reader_alloc()
441 sync_log_reader_t *slr = sync_log_reader_alloc(); in sync_log_reader_create_with_channel() local
444 slr->log_file = xstrdup(sync_log_fname(channel)); in sync_log_reader_create_with_channel()
448 buf_printf(&buf, "%s-run", slr->log_file); in sync_log_reader_create_with_channel()
449 slr->work_file = buf_release(&buf); in sync_log_reader_create_with_channel()
451 return slr; in sync_log_reader_create_with_channel()
461 sync_log_reader_t *slr = sync_log_reader_alloc(); in sync_log_reader_create_with_filename() local
462 slr->work_file = xstrdup(filename); in sync_log_reader_create_with_filename()
464 return slr; in sync_log_reader_create_with_filename()
469 sync_log_reader_t *slr = sync_log_reader_alloc(); in sync_log_reader_create_with_content() local
470 buf_init_ro_cstr(&slr->contentbuf, content); in sync_log_reader_create_with_content()
471 return slr; in sync_log_reader_create_with_content()
482 sync_log_reader_t *slr = sync_log_reader_alloc(); in sync_log_reader_create_with_fd() local
483 slr->fd = fd; in sync_log_reader_create_with_fd()
484 slr->fd_is_ours = 0; in sync_log_reader_create_with_fd()
486 return slr; in sync_log_reader_create_with_fd()
492 EXPORTED void sync_log_reader_free(sync_log_reader_t *slr) in sync_log_reader_free() argument
494 if (!slr) return; in sync_log_reader_free()
495 if (slr->input) prot_free(slr->input); in sync_log_reader_free()
496 if (slr->fd_is_ours && slr->fd >= 0) close(slr->fd); in sync_log_reader_free()
497 free(slr->log_file); in sync_log_reader_free()
498 free(slr->work_file); in sync_log_reader_free()
499 buf_free(&slr->type); in sync_log_reader_free()
500 buf_free(&slr->arg1); in sync_log_reader_free()
501 buf_free(&slr->arg2); in sync_log_reader_free()
502 buf_free(&slr->contentbuf); in sync_log_reader_free()
503 free(slr); in sync_log_reader_free()
520 EXPORTED int sync_log_reader_begin(sync_log_reader_t *slr) in sync_log_reader_begin() argument
525 if (slr->input) { in sync_log_reader_begin()
526 r = sync_log_reader_end(slr); in sync_log_reader_begin()
530 if (buf_len(&slr->contentbuf)) { in sync_log_reader_begin()
531 slr->input = prot_readmap(buf_base(&slr->contentbuf), buf_len(&slr->contentbuf)); in sync_log_reader_begin()
535 if (stat(slr->work_file, &sbuf) == 0) { in sync_log_reader_begin()
538 "Reprocessing sync log file %s", slr->work_file); in sync_log_reader_begin()
540 else if (!slr->log_file) { in sync_log_reader_begin()
546 if (stat(slr->log_file, &sbuf) < 0) { in sync_log_reader_begin()
550 slr->log_file); in sync_log_reader_begin()
555 if (rename(slr->log_file, slr->work_file) < 0) { in sync_log_reader_begin()
557 slr->log_file, slr->work_file); in sync_log_reader_begin()
562 if (slr->fd < 0) { in sync_log_reader_begin()
563 int fd = open(slr->work_file, O_RDWR, 0); in sync_log_reader_begin()
565 syslog(LOG_ERR, "Failed to open %s: %m", slr->work_file); in sync_log_reader_begin()
569 if (lock_blocking(fd, slr->work_file) < 0) { in sync_log_reader_begin()
570 syslog(LOG_ERR, "Failed to lock %s: %m", slr->work_file); in sync_log_reader_begin()
575 slr->fd = fd; in sync_log_reader_begin()
576 slr->fd_is_ours = 1; in sync_log_reader_begin()
582 lock_unlock(slr->fd, slr->work_file); in sync_log_reader_begin()
585 slr->input = prot_new(slr->fd, /*write*/0); in sync_log_reader_begin()
590 EXPORTED const char *sync_log_reader_get_file_name(const sync_log_reader_t *slr) in sync_log_reader_get_file_name() argument
592 return slr->work_file; in sync_log_reader_get_file_name()
600 EXPORTED int sync_log_reader_end(sync_log_reader_t *slr) in sync_log_reader_end() argument
602 if (!slr->input) in sync_log_reader_end()
605 if (slr->input) { in sync_log_reader_end()
606 prot_free(slr->input); in sync_log_reader_end()
607 slr->input = NULL; in sync_log_reader_end()
610 if (slr->fd_is_ours && slr->fd >= 0) { in sync_log_reader_end()
611 lock_unlock(slr->fd, slr->work_file); in sync_log_reader_end()
612 close(slr->fd); in sync_log_reader_end()
613 slr->fd = -1; in sync_log_reader_end()
616 if (slr->log_file) { in sync_log_reader_end()
621 if (slr->work_file && unlink(slr->work_file) < 0) { in sync_log_reader_end()
622 syslog(LOG_ERR, "Unlink %s failed: %m", slr->work_file); in sync_log_reader_end()
639 EXPORTED int sync_log_reader_getitem(sync_log_reader_t *slr, in sync_log_reader_getitem() argument
646 if (!slr->input) in sync_log_reader_getitem()
650 if ((c = getword(slr->input, &slr->type)) == EOF) in sync_log_reader_getitem()
654 if (c == '\r') c = prot_getc(slr->input); in sync_log_reader_getitem()
660 eatline(slr->input, c); in sync_log_reader_getitem()
664 if ((c = getastring(slr->input, 0, &slr->arg1)) == EOF) return EOF; in sync_log_reader_getitem()
665 arg1s = slr->arg1.s; in sync_log_reader_getitem()
669 if ((c = getastring(slr->input, 0, &slr->arg2)) == EOF) return EOF; in sync_log_reader_getitem()
670 arg2s = slr->arg2.s; in sync_log_reader_getitem()
673 if (c == '\r') c = prot_getc(slr->input); in sync_log_reader_getitem()
676 eatline(slr->input, c); in sync_log_reader_getitem()
683 ucase(slr->type.s); in sync_log_reader_getitem()
684 args[0] = slr->type.s; in sync_log_reader_getitem()