If we can't reach our preferred server, try using a different one. The diff makes more sense when ignoring white space. With this we check the connection to the cloud server much earlier and in case of failure to connect try a different cloud_base_url. Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
56 lines
2.2 KiB
C
56 lines
2.2 KiB
C
// SPDX-License-Identifier: GPL-2.0
|
|
#ifndef GITACCESS_H
|
|
#define GITACCESS_H
|
|
|
|
#include "git2.h"
|
|
#include "filterpreset.h"
|
|
|
|
struct dive_table;
|
|
struct dive_site_table;
|
|
struct trip_table;
|
|
|
|
#ifdef __cplusplus
|
|
extern "C" {
|
|
#else
|
|
#include <stdbool.h>
|
|
#endif
|
|
|
|
#define CLOUD_NUM_HOSTS 2
|
|
#define CLOUD_HOST_US "ssrf-cloud-us.subsurface-divelog.org"
|
|
#define CLOUD_HOST_EU "ssrf-cloud-eu.subsurface-divelog.org"
|
|
#define CLOUD_HOST_PATTERN "ssrf-cloud-..\\.subsurface-divelog\\.org"
|
|
#define CLOUD_HOST_GENERIC "cloud.subsurface-divelog.org"
|
|
|
|
enum remote_transport { RT_OTHER, RT_HTTPS, RT_SSH };
|
|
|
|
struct git_oid;
|
|
struct git_repository;
|
|
struct device_table;
|
|
#define dummy_git_repository ((git_repository *)3ul) /* Random bogus pointer, not NULL */
|
|
extern struct git_repository *is_git_repository(const char *filename, const char **branchp, const char **remote, bool dry_run);
|
|
extern int check_git_sha(const char *filename, git_repository **git_p, const char **branch_p);
|
|
extern int sync_with_remote(struct git_repository *repo, const char *remote, const char *branch, enum remote_transport rt);
|
|
extern int git_save_dives(struct git_repository *, const char *, const char *remote, bool select_only);
|
|
extern int git_load_dives(struct git_repository *repo, const char *branch, struct dive_table *table, struct trip_table *trips,
|
|
struct dive_site_table *sites, struct device_table *devices,
|
|
struct filter_preset_table *filter_presets);
|
|
extern const char *get_sha(git_repository *repo, const char *branch);
|
|
extern int do_git_save(git_repository *repo, const char *branch, const char *remote, bool select_only, bool create_empty);
|
|
extern const char *saved_git_id;
|
|
extern bool git_local_only;
|
|
extern bool git_remote_sync_successful;
|
|
extern void clear_git_id(void);
|
|
extern void set_git_id(const struct git_oid *);
|
|
extern enum remote_transport url_to_remote_transport(const char *remote);
|
|
void set_git_update_cb(int(*)(const char *));
|
|
int git_storage_update_progress(const char *text);
|
|
char *get_local_dir(const char *remote, const char *branch);
|
|
int git_create_local_repo(const char *filename);
|
|
int get_authorship(git_repository *repo, git_signature **authorp);
|
|
|
|
#ifdef __cplusplus
|
|
}
|
|
#endif
|
|
#endif // GITACCESS_H
|
|
|