]> git.sur5r.net Git - bacula/bacula/blobdiff - bacula/src/dird/protos.h
Fix problem of accents with new Win32 code.
[bacula/bacula] / bacula / src / dird / protos.h
index 012f52147240ddb0611a24a0af03d448ba24ff6a..03b4e4d45f14c88076925c167d699ff642bb6857 100644 (file)
@@ -8,7 +8,7 @@
 
    This program is free software; you can redistribute it and/or
    modify it under the terms of the GNU General Public License
 
    This program is free software; you can redistribute it and/or
    modify it under the terms of the GNU General Public License
-   version 2 as ammended with additional clauses defined in the
+   version 2 as amended with additional clauses defined in the
    file LICENSE in the main source directory.
 
    This program is distributed in the hope that it will be useful,
    file LICENSE in the main source directory.
 
    This program is distributed in the hope that it will be useful,
@@ -34,21 +34,22 @@ extern int do_autoprune(JCR *jcr);
 extern int prune_volumes(JCR *jcr);
 
 /* autorecycle.c */
 extern int prune_volumes(JCR *jcr);
 
 /* autorecycle.c */
-extern int recycle_oldest_purged_volume(JCR *jcr, bool InChanger, MEDIA_DBR *mr);
+extern bool recycle_oldest_purged_volume(JCR *jcr, bool InChanger, MEDIA_DBR *mr);
 extern int recycle_volume(JCR *jcr, MEDIA_DBR *mr);
 extern int recycle_volume(JCR *jcr, MEDIA_DBR *mr);
-extern int find_recycled_volume(JCR *jcr, bool InChanger, MEDIA_DBR *mr);
+extern bool find_recycled_volume(JCR *jcr, bool InChanger, MEDIA_DBR *mr);
 
 /* backup.c */
 extern int wait_for_job_termination(JCR *jcr);
 extern bool do_backup_init(JCR *jcr);
 extern bool do_backup(JCR *jcr);
 extern void backup_cleanup(JCR *jcr, int TermCode);
 
 /* backup.c */
 extern int wait_for_job_termination(JCR *jcr);
 extern bool do_backup_init(JCR *jcr);
 extern bool do_backup(JCR *jcr);
 extern void backup_cleanup(JCR *jcr, int TermCode);
+extern void update_bootstrap_file(JCR *jcr);
 
 /* bsr.c */
 RBSR *new_bsr();
 void free_bsr(RBSR *bsr);
 bool complete_bsr(UAContext *ua, RBSR *bsr);
 
 /* bsr.c */
 RBSR *new_bsr();
 void free_bsr(RBSR *bsr);
 bool complete_bsr(UAContext *ua, RBSR *bsr);
-uint32_t write_bsr_file(UAContext *ua, RBSR *bsr);
+uint32_t write_bsr_file(UAContext *ua, RESTORE_CTX &rx);
 void add_findex(RBSR *bsr, uint32_t JobId, int32_t findex);
 void add_findex_all(RBSR *bsr, uint32_t JobId);
 RBSR_FINDEX *new_findex();
 void add_findex(RBSR *bsr, uint32_t JobId, int32_t findex);
 void add_findex_all(RBSR *bsr, uint32_t JobId);
 RBSR_FINDEX *new_findex();
@@ -56,8 +57,8 @@ void make_unique_restore_filename(UAContext *ua, POOLMEM **fname);
 
 
 /* catreq.c */
 
 
 /* catreq.c */
-extern void catalog_request(JCR *jcr, BSOCK *bs, char *buf);
-extern void catalog_update(JCR *jcr, BSOCK *bs, char *buf);
+extern void catalog_request(JCR *jcr, BSOCK *bs);
+extern void catalog_update(JCR *jcr, BSOCK *bs);
 
 /* dird_conf.c */
 extern const char *level_to_str(int level);
 
 /* dird_conf.c */
 extern const char *level_to_str(int level);
@@ -68,15 +69,15 @@ int variable_expansion(JCR *jcr, char *inp, POOLMEM **exp);
 
 /* fd_cmds.c */
 extern int connect_to_file_daemon(JCR *jcr, int retry_interval,
 
 /* fd_cmds.c */
 extern int connect_to_file_daemon(JCR *jcr, int retry_interval,
-                                 int max_retry_time, int verbose);
+                                  int max_retry_time, int verbose);
 extern bool send_include_list(JCR *jcr);
 extern bool send_exclude_list(JCR *jcr);
 extern bool send_include_list(JCR *jcr);
 extern bool send_exclude_list(JCR *jcr);
-extern bool send_bootstrap_file(JCR *jcr);
+extern bool send_bootstrap_file(JCR *jcr, BSOCK *sock);
 extern bool send_level_command(JCR *jcr);
 extern int get_attributes_and_put_in_catalog(JCR *jcr);
 extern int get_attributes_and_compare_to_catalog(JCR *jcr, JobId_t JobId);
 extern int put_file_into_catalog(JCR *jcr, long file_index, char *fname,
 extern bool send_level_command(JCR *jcr);
 extern int get_attributes_and_put_in_catalog(JCR *jcr);
 extern int get_attributes_and_compare_to_catalog(JCR *jcr, JobId_t JobId);
 extern int put_file_into_catalog(JCR *jcr, long file_index, char *fname,
-                         char *link, char *attr, int stream);
+                          char *link, char *attr, int stream);
 extern void get_level_since_time(JCR *jcr, char *since, int since_len);
 extern int send_run_before_and_after_commands(JCR *jcr);
 
 extern void get_level_since_time(JCR *jcr, char *since, int since_len);
 extern int send_run_before_and_after_commands(JCR *jcr);
 
@@ -92,17 +93,20 @@ extern void set_jcr_defaults(JCR *jcr, JOB *job);
 extern void create_unique_job_name(JCR *jcr, const char *base_name);
 extern void update_job_end_record(JCR *jcr);
 extern bool get_or_create_client_record(JCR *jcr);
 extern void create_unique_job_name(JCR *jcr, const char *base_name);
 extern void update_job_end_record(JCR *jcr);
 extern bool get_or_create_client_record(JCR *jcr);
-extern bool get_or_create_fileset_record(JCR *jcr, FILESET_DBR *fsr);
+extern bool get_or_create_fileset_record(JCR *jcr);
 extern JobId_t run_job(JCR *jcr);
 extern JobId_t run_job(JCR *jcr);
-extern int cancel_job(UAContext *ua, JCR *jcr);
+extern bool cancel_job(UAContext *ua, JCR *jcr);
 extern void init_jcr_job_record(JCR *jcr);
 extern void init_jcr_job_record(JCR *jcr);
-extern void copy_storage(JCR *new_jcr, JCR *old_jcr);
+extern void copy_storage(JCR *jcr, alist *storage);
 extern void set_storage(JCR *jcr, STORE *store);
 extern void set_storage(JCR *jcr, STORE *store);
+extern bool setup_job(JCR *jcr);
+extern void create_clones(JCR *jcr);
+extern bool create_restore_bootstrap_file(JCR *jcr);
 
 
-/* mac.c */
-extern bool do_mac(JCR *jcr);
-extern bool do_mac_init(JCR *jcr);
-extern void mac_cleanup(JCR *jcr, int TermCode);
+/* migration.c */
+extern bool do_migration(JCR *jcr);
+extern bool do_migration_init(JCR *jcr);
+extern void migration_cleanup(JCR *jcr, int TermCode);
 
 
 /* mountreq.c */
 
 
 /* mountreq.c */
@@ -110,14 +114,14 @@ extern void mount_request(JCR *jcr, BSOCK *bs, char *buf);
 
 /* msgchan.c */
 extern bool connect_to_storage_daemon(JCR *jcr, int retry_interval,
 
 /* msgchan.c */
 extern bool connect_to_storage_daemon(JCR *jcr, int retry_interval,
-                             int max_retry_time, int verbose);
-extern int start_storage_daemon_job(JCR *jcr, alist *store, int append);
+                              int max_retry_time, int verbose);
+extern bool start_storage_daemon_job(JCR *jcr, alist *rstore, alist *wstore);
 extern int start_storage_daemon_message_thread(JCR *jcr);
 extern int bget_dirmsg(BSOCK *bs);
 extern void wait_for_storage_daemon_termination(JCR *jcr);
 
 /* next_vol.c */
 extern int start_storage_daemon_message_thread(JCR *jcr);
 extern int bget_dirmsg(BSOCK *bs);
 extern void wait_for_storage_daemon_termination(JCR *jcr);
 
 /* next_vol.c */
-int find_next_volume_for_append(JCR *jcr, MEDIA_DBR *mr, bool create);
+int find_next_volume_for_append(JCR *jcr, MEDIA_DBR *mr, int index, bool create);
 bool has_volume_expired(JCR *jcr, MEDIA_DBR *mr);
 void check_if_volume_valid_or_recyclable(JCR *jcr, MEDIA_DBR *mr, const char **reason);
 
 bool has_volume_expired(JCR *jcr, MEDIA_DBR *mr);
 void check_if_volume_valid_or_recyclable(JCR *jcr, MEDIA_DBR *mr, const char **reason);
 
@@ -142,7 +146,7 @@ bool acl_access_ok(UAContext *ua, int acl, char *item, int len);
 int do_a_command(UAContext *ua, const char *cmd);
 int do_a_dot_command(UAContext *ua, const char *cmd);
 int qmessagescmd(UAContext *ua, const char *cmd);
 int do_a_command(UAContext *ua, const char *cmd);
 int do_a_dot_command(UAContext *ua, const char *cmd);
 int qmessagescmd(UAContext *ua, const char *cmd);
-int open_db(UAContext *ua);
+bool open_db(UAContext *ua);
 void close_db(UAContext *ua);
 enum e_pool_op {
    POOL_OP_UPDATE,
 void close_db(UAContext *ua);
 enum e_pool_op {
    POOL_OP_UPDATE,
@@ -150,6 +154,7 @@ enum e_pool_op {
 };
 int create_pool(JCR *jcr, B_DB *db, POOL *pool, e_pool_op op);
 void set_pool_dbr_defaults_in_media_dbr(MEDIA_DBR *mr, POOL_DBR *pr);
 };
 int create_pool(JCR *jcr, B_DB *db, POOL *pool, e_pool_op op);
 void set_pool_dbr_defaults_in_media_dbr(MEDIA_DBR *mr, POOL_DBR *pr);
+void set_pooldbr_from_poolres(POOL_DBR *pr, POOL *pool, e_pool_op op);
 
 /* ua_input.c */
 int get_cmd(UAContext *ua, const char *prompt);
 
 /* ua_input.c */
 int get_cmd(UAContext *ua, const char *prompt);
@@ -159,11 +164,15 @@ void parse_ua_args(UAContext *ua);
 
 /* ua_label.c */
 bool is_volume_name_legal(UAContext *ua, const char *name);
 
 /* ua_label.c */
 bool is_volume_name_legal(UAContext *ua, const char *name);
+int get_num_drives_from_SD(UAContext *ua);
 
 /* ua_output.c */
 void prtit(void *ctx, const char *msg);
 int complete_jcr_for_job(JCR *jcr, JOB *job, POOL *pool);
 
 /* ua_output.c */
 void prtit(void *ctx, const char *msg);
 int complete_jcr_for_job(JCR *jcr, JOB *job, POOL *pool);
-RUN *find_next_run(RUN *run, JOB *job, time_t &runtime);
+RUN *find_next_run(RUN *run, JOB *job, time_t &runtime, int ndays);
+
+/* ua_restore.c */
+int get_next_jobid_from_list(char **p, JobId_t *JobId);
 
 /* ua_server.c */
 void bsendmsg(void *sock, const char *fmt, ...);
 
 /* ua_server.c */
 void bsendmsg(void *sock, const char *fmt, ...);
@@ -172,28 +181,29 @@ JCR *new_control_jcr(const char *base_name, int job_type);
 void free_ua_context(UAContext *ua);
 
 /* ua_select.c */
 void free_ua_context(UAContext *ua);
 
 /* ua_select.c */
-STORE  *select_storage_resource(UAContext *ua);
-JOB    *select_job_resource(UAContext *ua);
-JOB    *select_restore_job_resource(UAContext *ua);
-CLIENT *select_client_resource(UAContext *ua);
+STORE   *select_storage_resource(UAContext *ua);
+JOB     *select_job_resource(UAContext *ua);
+JOB     *select_restore_job_resource(UAContext *ua);
+CLIENT  *select_client_resource(UAContext *ua);
 FILESET *select_fileset_resource(UAContext *ua);
 FILESET *select_fileset_resource(UAContext *ua);
-int    select_pool_and_media_dbr(UAContext *ua, POOL_DBR *pr, MEDIA_DBR *mr);
-int    select_media_dbr(UAContext *ua, MEDIA_DBR *mr);
-bool   select_pool_dbr(UAContext *ua, POOL_DBR *pr);
-int    select_client_dbr(UAContext *ua, CLIENT_DBR *cr);
-
-void   start_prompt(UAContext *ua, const char *msg);
-void   add_prompt(UAContext *ua, const char *prompt);
-int    do_prompt(UAContext *ua, const char *automsg, const char *msg, char *prompt, int max_prompt);
+int     select_pool_and_media_dbr(UAContext *ua, POOL_DBR *pr, MEDIA_DBR *mr);
+int     select_media_dbr(UAContext *ua, MEDIA_DBR *mr);
+bool    select_pool_dbr(UAContext *ua, POOL_DBR *pr);
+int     select_client_dbr(UAContext *ua, CLIENT_DBR *cr);
+
+void    start_prompt(UAContext *ua, const char *msg);
+void    add_prompt(UAContext *ua, const char *prompt);
+int     do_prompt(UAContext *ua, const char *automsg, const char *msg, char *prompt, int max_prompt);
 CAT    *get_catalog_resource(UAContext *ua);
 CAT    *get_catalog_resource(UAContext *ua);
-STORE  *get_storage_resource(UAContext *ua, int use_default);
-int    get_media_type(UAContext *ua, char *MediaType, int max_media);
-bool   get_pool_dbr(UAContext *ua, POOL_DBR *pr);
-int    get_client_dbr(UAContext *ua, CLIENT_DBR *cr);
+STORE  *get_storage_resource(UAContext *ua, bool use_default);
+int     get_storage_drive(UAContext *ua, STORE *store);
+int     get_media_type(UAContext *ua, char *MediaType, int max_media);
+bool    get_pool_dbr(UAContext *ua, POOL_DBR *pr);
+int     get_client_dbr(UAContext *ua, CLIENT_DBR *cr);
 POOL   *get_pool_resource(UAContext *ua);
 POOL   *select_pool_resource(UAContext *ua);
 CLIENT *get_client_resource(UAContext *ua);
 POOL   *get_pool_resource(UAContext *ua);
 POOL   *select_pool_resource(UAContext *ua);
 CLIENT *get_client_resource(UAContext *ua);
-int    get_job_dbr(UAContext *ua, JOB_DBR *jr);
+int     get_job_dbr(UAContext *ua, JOB_DBR *jr);
 
 int find_arg_keyword(UAContext *ua, const char **list);
 int find_arg(UAContext *ua, const char *keyword);
 
 int find_arg_keyword(UAContext *ua, const char **list);
 int find_arg(UAContext *ua, const char *keyword);
@@ -212,7 +222,11 @@ int prune_jobs(UAContext *ua, CLIENT *client, int JobType);
 int prune_volume(UAContext *ua, MEDIA_DBR *mr);
 
 /* ua_purge.c */
 int prune_volume(UAContext *ua, MEDIA_DBR *mr);
 
 /* ua_purge.c */
+bool mark_media_purged(UAContext *ua, MEDIA_DBR *mr);
+void purge_files_from_volume(UAContext *ua, MEDIA_DBR *mr );
 int purge_jobs_from_volume(UAContext *ua, MEDIA_DBR *mr);
 int purge_jobs_from_volume(UAContext *ua, MEDIA_DBR *mr);
+void purge_files_from_job(UAContext *ua, JOB_DBR *jr);
+
 
 /* ua_run.c */
 extern int run_cmd(UAContext *ua, const char *cmd);
 
 /* ua_run.c */
 extern int run_cmd(UAContext *ua, const char *cmd);