]> git.sur5r.net Git - bacula/bacula/blob - bacula/src/dird/protos.h
- Move test for MaxStartDelay as suggested by Peter.
[bacula/bacula] / bacula / src / dird / protos.h
1 /*
2  * Director external function prototypes
3  *
4  *   Version $Id$
5  */
6 /*
7    Copyright (C) 2000-2005 Kern Sibbald
8
9    This program is free software; you can redistribute it and/or
10    modify it under the terms of the GNU General Public License as
11    published by the Free Software Foundation; either version 2 of
12    the License, or (at your option) any later version.
13
14    This program is distributed in the hope that it will be useful,
15    but WITHOUT ANY WARRANTY; without even the implied warranty of
16    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
17    General Public License for more details.
18
19    You should have received a copy of the GNU General Public
20    License along with this program; if not, write to the Free
21    Software Foundation, Inc., 59 Temple Place - Suite 330, Boston,
22    MA 02111-1307, USA.
23
24  */
25
26 /* admin.c */
27 extern bool do_admin_init(JCR *jcr);
28 extern bool do_admin(JCR *jcr);
29 extern void admin_cleanup(JCR *jcr, int TermCode);
30
31
32 /* authenticate.c */
33 extern bool authenticate_storage_daemon(JCR *jcr, STORE *store);
34 extern int authenticate_file_daemon(JCR *jcr);
35 extern int authenticate_user_agent(UAContext *ua);
36
37 /* autoprune.c */
38 extern int do_autoprune(JCR *jcr);
39 extern int prune_volumes(JCR *jcr);
40
41 /* autorecycle.c */
42 extern int recycle_oldest_purged_volume(JCR *jcr, bool InChanger, MEDIA_DBR *mr);
43 extern int recycle_volume(JCR *jcr, MEDIA_DBR *mr);
44 extern int find_recycled_volume(JCR *jcr, bool InChanger, MEDIA_DBR *mr);
45
46 /* backup.c */
47 extern int wait_for_job_termination(JCR *jcr);
48 extern bool do_backup_init(JCR *jcr);
49 extern bool do_backup(JCR *jcr);
50 extern void backup_cleanup(JCR *jcr, int TermCode);
51
52 /* bsr.c */
53 RBSR *new_bsr();
54 void free_bsr(RBSR *bsr);
55 bool complete_bsr(UAContext *ua, RBSR *bsr);
56 uint32_t write_bsr_file(UAContext *ua, RBSR *bsr);
57 void add_findex(RBSR *bsr, uint32_t JobId, int32_t findex);
58 void add_findex_all(RBSR *bsr, uint32_t JobId);
59 RBSR_FINDEX *new_findex();
60
61
62 /* catreq.c */
63 extern void catalog_request(JCR *jcr, BSOCK *bs, char *buf);
64 extern void catalog_update(JCR *jcr, BSOCK *bs, char *buf);
65
66 /* dird_conf.c */
67 extern const char *level_to_str(int level);
68
69 /* expand.c */
70 int variable_expansion(JCR *jcr, char *inp, POOLMEM **exp);
71
72
73 /* fd_cmds.c */
74 extern int connect_to_file_daemon(JCR *jcr, int retry_interval,
75                                   int max_retry_time, int verbose);
76 extern bool send_include_list(JCR *jcr);
77 extern bool send_exclude_list(JCR *jcr);
78 extern bool send_bootstrap_file(JCR *jcr);
79 extern bool send_level_command(JCR *jcr);
80 extern int get_attributes_and_put_in_catalog(JCR *jcr);
81 extern int get_attributes_and_compare_to_catalog(JCR *jcr, JobId_t JobId);
82 extern int put_file_into_catalog(JCR *jcr, long file_index, char *fname,
83                           char *link, char *attr, int stream);
84 extern void get_level_since_time(JCR *jcr, char *since, int since_len);
85 extern int send_run_before_and_after_commands(JCR *jcr);
86
87 /* getmsg.c */
88 enum e_prtmsg {
89    DISPLAY_ERROR,
90    NO_DISPLAY
91 };
92 extern bool response(JCR *jcr, BSOCK *fd, char *resp, const char *cmd, e_prtmsg prtmsg);
93
94 /* job.c */
95 extern void set_jcr_defaults(JCR *jcr, JOB *job);
96 extern void create_unique_job_name(JCR *jcr, const char *base_name);
97 extern void update_job_end_record(JCR *jcr);
98 extern bool get_or_create_client_record(JCR *jcr);
99 extern bool get_or_create_fileset_record(JCR *jcr, FILESET_DBR *fsr);
100 extern JobId_t run_job(JCR *jcr);
101 extern int cancel_job(UAContext *ua, JCR *jcr);
102 extern void init_jcr_job_record(JCR *jcr);
103 extern void copy_storage(JCR *new_jcr, JCR *old_jcr);
104 extern void set_storage(JCR *jcr, STORE *store);
105
106 /* mac.c */
107 extern bool do_mac(JCR *jcr);
108 extern bool do_mac_init(JCR *jcr);
109 extern void mac_cleanup(JCR *jcr, int TermCode);
110
111
112 /* mountreq.c */
113 extern void mount_request(JCR *jcr, BSOCK *bs, char *buf);
114
115 /* msgchan.c */
116 extern bool connect_to_storage_daemon(JCR *jcr, int retry_interval,
117                               int max_retry_time, int verbose);
118 extern int start_storage_daemon_job(JCR *jcr, alist *store, int append);
119 extern int start_storage_daemon_message_thread(JCR *jcr);
120 extern int bget_dirmsg(BSOCK *bs);
121 extern void wait_for_storage_daemon_termination(JCR *jcr);
122
123 /* next_vol.c */
124 int find_next_volume_for_append(JCR *jcr, MEDIA_DBR *mr, bool create);
125 bool has_volume_expired(JCR *jcr, MEDIA_DBR *mr);
126 void check_if_volume_valid_or_recyclable(JCR *jcr, MEDIA_DBR *mr, const char **reason);
127
128 /* newvol.c */
129 bool newVolume(JCR *jcr, MEDIA_DBR *mr);
130
131 /* python.c */
132 int generate_job_event(JCR *jcr, const char *event);
133
134
135 /* restore.c */
136 extern bool do_restore(JCR *jcr);
137 extern bool do_restore_init(JCR *jcr);
138 extern void restore_cleanup(JCR *jcr, int TermCode);
139
140
141 /* ua_acl.c */
142 bool acl_access_ok(UAContext *ua, int acl, char *item);
143 bool acl_access_ok(UAContext *ua, int acl, char *item, int len);
144
145 /* ua_cmds.c */
146 int do_a_command(UAContext *ua, const char *cmd);
147 int do_a_dot_command(UAContext *ua, const char *cmd);
148 int qmessagescmd(UAContext *ua, const char *cmd);
149 int open_db(UAContext *ua);
150 void close_db(UAContext *ua);
151 enum e_pool_op {
152    POOL_OP_UPDATE,
153    POOL_OP_CREATE
154 };
155 int create_pool(JCR *jcr, B_DB *db, POOL *pool, e_pool_op op);
156 void set_pool_dbr_defaults_in_media_dbr(MEDIA_DBR *mr, POOL_DBR *pr);
157
158 /* ua_input.c */
159 int get_cmd(UAContext *ua, const char *prompt);
160 bool get_pint(UAContext *ua, const char *prompt);
161 bool get_yesno(UAContext *ua, const char *prompt);
162 void parse_ua_args(UAContext *ua);
163
164 /* ua_label.c */
165 bool is_volume_name_legal(UAContext *ua, const char *name);
166
167 /* ua_output.c */
168 void prtit(void *ctx, const char *msg);
169 int complete_jcr_for_job(JCR *jcr, JOB *job, POOL *pool);
170 RUN *find_next_run(RUN *run, JOB *job, time_t &runtime);
171
172 /* ua_server.c */
173 void bsendmsg(void *sock, const char *fmt, ...);
174 UAContext *new_ua_context(JCR *jcr);
175 JCR *new_control_jcr(const char *base_name, int job_type);
176 void free_ua_context(UAContext *ua);
177
178 /* ua_select.c */
179 STORE   *select_storage_resource(UAContext *ua);
180 JOB     *select_job_resource(UAContext *ua);
181 JOB     *select_restore_job_resource(UAContext *ua);
182 CLIENT  *select_client_resource(UAContext *ua);
183 FILESET *select_fileset_resource(UAContext *ua);
184 int     select_pool_and_media_dbr(UAContext *ua, POOL_DBR *pr, MEDIA_DBR *mr);
185 int     select_media_dbr(UAContext *ua, MEDIA_DBR *mr);
186 bool    select_pool_dbr(UAContext *ua, POOL_DBR *pr);
187 int     select_client_dbr(UAContext *ua, CLIENT_DBR *cr);
188
189 void    start_prompt(UAContext *ua, const char *msg);
190 void    add_prompt(UAContext *ua, const char *prompt);
191 int     do_prompt(UAContext *ua, const char *automsg, const char *msg, char *prompt, int max_prompt);
192 CAT    *get_catalog_resource(UAContext *ua);
193 STORE  *get_storage_resource(UAContext *ua, int use_default);
194 int     get_media_type(UAContext *ua, char *MediaType, int max_media);
195 bool    get_pool_dbr(UAContext *ua, POOL_DBR *pr);
196 int     get_client_dbr(UAContext *ua, CLIENT_DBR *cr);
197 POOL   *get_pool_resource(UAContext *ua);
198 POOL   *select_pool_resource(UAContext *ua);
199 CLIENT *get_client_resource(UAContext *ua);
200 int     get_job_dbr(UAContext *ua, JOB_DBR *jr);
201
202 int find_arg_keyword(UAContext *ua, const char **list);
203 int find_arg(UAContext *ua, const char *keyword);
204 int find_arg_with_value(UAContext *ua, const char *keyword);
205 int do_keyword_prompt(UAContext *ua, const char *msg, const char **list);
206 int confirm_retention(UAContext *ua, utime_t *ret, const char *msg);
207 bool get_level_from_name(JCR *jcr, const char *level_name);
208
209 /* ua_tree.c */
210 bool user_select_files_from_tree(TREE_CTX *tree);
211 int insert_tree_handler(void *ctx, int num_fields, char **row);
212
213 /* ua_prune.c */
214 int prune_files(UAContext *ua, CLIENT *client);
215 int prune_jobs(UAContext *ua, CLIENT *client, int JobType);
216 int prune_volume(UAContext *ua, MEDIA_DBR *mr);
217
218 /* ua_purge.c */
219 int purge_jobs_from_volume(UAContext *ua, MEDIA_DBR *mr);
220
221 /* ua_run.c */
222 extern int run_cmd(UAContext *ua, const char *cmd);
223
224 /* verify.c */
225 extern bool do_verify(JCR *jcr);
226 extern bool do_verify_init(JCR *jcr);
227 extern void verify_cleanup(JCR *jcr, int TermCode);