Fix the remove-journal paramater and add new functions for it.

This commit is contained in:
Andreas Schneider 2008-06-02 17:02:22 +02:00
parent 057f72471f
commit b5334402b9
3 changed files with 21 additions and 5 deletions

View file

@ -20,10 +20,11 @@
* vim: ts=2 sw=2 et cindent * vim: ts=2 sw=2 et cindent
*/ */
#include <argp.h>
#include <stdio.h> #include <stdio.h>
#include <string.h> #include <string.h>
#include <stdlib.h> #include <stdlib.h>
#include <argp.h> #include <unistd.h>
#include <csync.h> #include <csync.h>
@ -164,6 +165,7 @@ static struct argp argp = {options, parse_opt, args_doc, doc, NULL, NULL, NULL};
int main(int argc, char **argv) { int main(int argc, char **argv) {
int rc = 0; int rc = 0;
char *journal = NULL;
CSYNC *csync; CSYNC *csync;
struct argument_s arguments; struct argument_s arguments;
@ -205,6 +207,10 @@ int main(int argc, char **argv) {
} }
} }
if (arguments.journal_remove) {
journal = csync_get_journal_file(csync);
}
if (arguments.update) { if (arguments.update) {
if (csync_update(csync) < 0) { if (csync_update(csync) < 0) {
perror("csync_update"); perror("csync_update");
@ -234,12 +240,13 @@ int main(int argc, char **argv) {
} }
out: out:
if (arguments.journal_remove) {
csync_remove_journal(csync);
}
csync_destroy(csync); csync_destroy(csync);
if (arguments.journal_remove && journal != NULL) {
unlink(journal);
free(journal);
}
return rc; return rc;
} }

View file

@ -591,6 +591,14 @@ int csync_set_module_auth_callback(CSYNC *ctx, csync_module_auth_callback cb) {
return 0; return 0;
} }
char *csync_get_journal_file(CSYNC *ctx) {
if (ctx == NULL) {
return NULL;
}
return c_strdup(ctx->journal.file);
}
csync_module_auth_callback csync_get_module_auth_callback(CSYNC *ctx) { csync_module_auth_callback csync_get_module_auth_callback(CSYNC *ctx) {
if (ctx == NULL) { if (ctx == NULL) {
return NULL; return NULL;

View file

@ -133,6 +133,7 @@ int csync_set_config_dir(CSYNC *ctx, const char *path);
int csync_remove_config_dir(CSYNC *ctx); int csync_remove_config_dir(CSYNC *ctx);
csync_module_auth_callback csync_get_module_auth_callback(CSYNC *ctx); csync_module_auth_callback csync_get_module_auth_callback(CSYNC *ctx);
int csync_set_module_auth_callback(CSYNC *ctx, csync_module_auth_callback cb); int csync_set_module_auth_callback(CSYNC *ctx, csync_module_auth_callback cb);
char *csync_get_journal_file(CSYNC *ctx);
int csync_get_status(CSYNC *ctx); int csync_get_status(CSYNC *ctx);
int csync_set_status(CSYNC *ctx, int status); int csync_set_status(CSYNC *ctx, int status);