diff options
Diffstat (limited to 'src/context.c')
-rw-r--r-- | src/context.c | 25 |
1 files changed, 23 insertions, 2 deletions
diff --git a/src/context.c b/src/context.c index 6611d03..84dd4b1 100644 --- a/src/context.c +++ b/src/context.c @@ -160,8 +160,10 @@ struct syrep_db_context* db_context_open(const char *filename, int force) { if (!c->origin) { char hn[256]; - if (gethostname(hn, sizeof(hn)) < 0) + if (gethostname(hn, sizeof(hn)) < 0) { + fprintf(stderr, "gethostname() failed: %s\n", strerror(errno)); goto fail; + } c->origin = strdup(hn); } @@ -319,13 +321,32 @@ int db_context_save(struct syrep_db_context *c, const char *filename) { return package_save(c->package, filename); } +int db_context_fix_origin(struct syrep_db_context*c) { + char hn[256]; + assert(c); + + if (gethostname(hn, sizeof(hn)) < 0) { + fprintf(stderr, "gethostname() failed: %s\n", strerror(errno)); + return -1; + } + + free(c->origin); + c->origin = strdup(hn); + + return 0; +} + int db_context_origin_warn(struct syrep_db_context *c) { char hn[256]; assert(c); - if (gethostname(hn, sizeof(hn)) < 0) + if (gethostname(hn, sizeof(hn)) < 0) { + fprintf(stderr, "gethostname() failed: %s\n", strerror(errno)); return -1; + } + + hn[sizeof(hn)-1] = 0; if (strcmp(hn, c->origin)) { int q; |