]> git.sur5r.net Git - bacula/bacula/blobdiff - bacula/src/lib/protos.h
kes Fix python compiler string warning. Note, IMO the GNU C++
[bacula/bacula] / bacula / src / lib / protos.h
index 14d202f225446ae9fbead506f63c9ec9c2999bfe..80df88a0f4f74b18c50cfe036406534084251301 100644 (file)
@@ -1,19 +1,14 @@
-/*
- * Prototypes for lib directory of Bacula
- *
- *   Version $Id$
- */
 /*
    Bacula® - The Network Backup Solution
 
-   Copyright (C) 2000-2006 Free Software Foundation Europe e.V.
+   Copyright (C) 2000-2008 Free Software Foundation Europe e.V.
 
    The main author of Bacula is Kern Sibbald, with contributions from
    many others, a complete list can be found in the file AUTHORS.
    This program is Free Software; you can redistribute it and/or
    modify it under the terms of version two of the GNU General Public
-   License as published by the Free Software Foundation plus additions
-   that are listed in the file LICENSE.
+   License as published by the Free Software Foundation and included
+   in the file LICENSE.
 
    This program is distributed in the hope that it will be useful, but
    WITHOUT ANY WARRANTY; without even the implied warranty of
    (FSFE), Fiduciary Program, Sumatrastrasse 25, 8006 Zürich,
    Switzerland, email:ftf@fsfeurope.org.
 */
+/*
+ * Prototypes for lib directory of Bacula
+ *
+ *   Version $Id$
+ */
+
+#ifndef __LIBPROTOS_H
+#define __LIBPROTOS_H
 
 class JCR;
 
 /* attr.c */
-ATTR     *new_attr();
+ATTR     *new_attr(JCR *jcr);
 void      free_attr(ATTR *attr);
 int       unpack_attributes_record(JCR *jcr, int32_t stream, char *rec, ATTR *attr);
 void      build_attr_output_fnames(JCR *jcr, ATTR *attr);
@@ -74,7 +77,7 @@ void      make_unique_filename   (POOLMEM **name, int Id, char *what);
 long long int strtoll            (const char *ptr, char **endptr, int base);
 #endif
 void      read_state_file(char *dir, const char *progname, int port);
-int       bstrerror(int errnum, char *buf, size_t bufsiz);
+int       b_strerror(int errnum, char *buf, size_t bufsiz);
 char     *escape_filename(const char *file_path);
 
 /* bnet.c */
@@ -123,8 +126,8 @@ int              close_wpipe(BPIPE *bpipe);
 int              close_bpipe(BPIPE *bpipe);
 
 /* cram-md5.c */
-bool cram_md5_respond(BSOCK *bs, char *password, int *tls_remote_need, int *compatible);
-bool cram_md5_challenge(BSOCK *bs, char *password, int tls_local_need, int compatible);
+bool cram_md5_respond(BSOCK *bs, const char *password, int *tls_remote_need, int *compatible);
+bool cram_md5_challenge(BSOCK *bs, const char *password, int tls_local_need, int compatible);
 void hmac_md5(uint8_t* text, int text_len, uint8_t* key, int key_len, uint8_t *hmac);
 
 /* crc32.c */
@@ -139,11 +142,12 @@ bool               crypto_digest_update        (DIGEST *digest, const uint8_t *d
 bool               crypto_digest_finalize      (DIGEST *digest, uint8_t *dest, uint32_t *length);
 void               crypto_digest_free          (DIGEST *digest);
 SIGNATURE *        crypto_sign_new             (JCR *jcr);
-crypto_error_t     crypto_sign_get_digest      (SIGNATURE *sig, X509_KEYPAIR *keypair, DIGEST **digest);
+crypto_error_t     crypto_sign_get_digest      (SIGNATURE *sig, X509_KEYPAIR *keypair, 
+                                                crypto_digest_t &algorithm, DIGEST **digest);
 crypto_error_t     crypto_sign_verify          (SIGNATURE *sig, X509_KEYPAIR *keypair, DIGEST *digest);
 int                crypto_sign_add_signer      (SIGNATURE *sig, DIGEST *digest, X509_KEYPAIR *keypair);
 int                crypto_sign_encode          (SIGNATURE *sig, uint8_t *dest, uint32_t *length);
-SIGNATURE *        crypto_sign_decode          (const uint8_t *sigData, uint32_t length);
+SIGNATURE *        crypto_sign_decode          (JCR *jcr, const uint8_t *sigData, uint32_t length);
 void               crypto_sign_free            (SIGNATURE *sig);
 CRYPTO_SESSION *   crypto_session_new          (crypto_cipher_t cipher, alist *pubkeys);
 void               crypto_session_free         (CRYPTO_SESSION *cs);
@@ -198,6 +202,9 @@ void unlock_jobs();
 JCR *jcr_walk_start();
 JCR *jcr_walk_next(JCR *prev_jcr);
 void jcr_walk_end(JCR *jcr);
+uint32_t get_jobid_from_tsd();             
+JCR *get_jcr_from_tsd();
+void set_jcr_in_tsd(JCR *jcr);
 
 
 /* lex.c */
@@ -224,6 +231,7 @@ void       free_msgs_res         (MSGS *msgs);
 void       dequeue_messages      (JCR *jcr);
 void       set_trace             (int trace_flag);
 void       set_db_type           (const char *name);
+void       register_message_callback(void msg_callback(int type, char *msg));
 
 /* bnet_server.c */
 void       bnet_thread_server(dlist *addr, int max_clients, workq_t *client_wq,
@@ -234,12 +242,6 @@ int              net_connect             (int port);
 BSOCK *          bnet_bind               (int port);
 BSOCK *          bnet_accept             (BSOCK *bsock, char *who);
 
-/* idcache.c */
-char *getuser(uid_t uid);
-void free_getuser_cache();
-char *getgroup (gid_t gid);
-void free_getgroup_cache();
-
 /* python.c */
 typedef int (EVENT_HANDLER)(JCR *jcr, const char *event);
 void init_python_interpreter(const char *progname, const char *scripts,
@@ -284,21 +286,28 @@ TLS_CONTEXT      *new_tls_context        (const char *ca_certfile,
                                           bool verify_peer);
 void             free_tls_context        (TLS_CONTEXT *ctx);
 #ifdef HAVE_TLS
-bool             tls_postconnect_verify_host  (TLS_CONNECTION *tls,
+bool             tls_postconnect_verify_host(JCR *jcr, TLS_CONNECTION *tls,
                                                const char *host);
-bool             tls_postconnect_verify_cn    (TLS_CONNECTION *tls,
+bool             tls_postconnect_verify_cn(JCR *jcr, TLS_CONNECTION *tls,
                                                alist *verify_list);
 TLS_CONNECTION   *new_tls_connection     (TLS_CONTEXT *ctx, int fd);
-void             free_tls_connection     (TLS_CONNECTION *tls);
-bool             tls_bsock_connect       (BSOCK *bsock);
 bool             tls_bsock_accept        (BSOCK *bsock);
-void             tls_bsock_shutdown      (BSOCK *bsock);
 int              tls_bsock_writen        (BSOCK *bsock, char *ptr, int32_t nbytes);
 int              tls_bsock_readn         (BSOCK *bsock, char *ptr, int32_t nbytes);
 #endif /* HAVE_TLS */
+bool             tls_bsock_connect       (BSOCK *bsock);
+void             tls_bsock_shutdown      (BSOCK *bsock);
+void             free_tls_connection     (TLS_CONNECTION *tls);
+bool             get_tls_require         (TLS_CONTEXT *ctx);
+bool             get_tls_enable          (TLS_CONTEXT *ctx);
 
 
 /* util.c */
+
+extern "C" {
+typedef char *(*job_code_callback_t)(JCR *, const char *);
+}
+
 bool             is_buf_zero             (char *buf, int len);
 void             lcase                   (char *str);
 void             bash_spaces             (char *str);
@@ -309,13 +318,17 @@ char *           encode_time             (time_t time, char *buf);
 char *           encode_mode             (mode_t mode, char *buf);
 int              do_shell_expansion      (char *name, int name_len);
 void             jobstatus_to_ascii      (int JobStatus, char *msg, int maxlen);
-int              run_program             (char *prog, int wait, POOLMEM *results);
-int              run_program_full_output (char *prog, int wait, POOLMEM *results);
+void             jobstatus_to_ascii_gui  (int JobStatus, char *msg, int maxlen);
+int              run_program             (char *prog, int wait, POOLMEM *&results);
+int              run_program_full_output (char *prog, int wait, POOLMEM *&results);
 const char *     job_type_to_str         (int type);
 const char *     job_status_to_str       (int stat);
 const char *     job_level_to_str        (int level);
+const char *     volume_status_to_str    (const char *status);
 void             make_session_key        (char *key, char *seed, int mode);
-POOLMEM *        edit_job_codes          (JCR *jcr, char *omsg, char *imsg, const char *to);
+void             encode_session_key      (char *encode, char *session, char *key, int maxlen);
+void             decode_session_key      (char *decode, char *session, char *key, int maxlen);
+POOLMEM *        edit_job_codes          (JCR *jcr, char *omsg, char *imsg, const char *to, job_code_callback_t job_code_callback = NULL);
 void             set_working_directory   (char *wd);
 const char *     last_path_separator     (const char *str);
 
@@ -328,9 +341,11 @@ bool register_watchdog(watchdog_t *wd);
 bool unregister_watchdog(watchdog_t *wd);
 
 /* timers.c */
-btimer_t *start_child_timer(pid_t pid, uint32_t wait);
+btimer_t *start_child_timer(JCR *jcr, pid_t pid, uint32_t wait);
 void stop_child_timer(btimer_t *wid);
-btimer_t *start_thread_timer(pthread_t tid, uint32_t wait);
+btimer_t *start_thread_timer(JCR *jcr, pthread_t tid, uint32_t wait);
 void stop_thread_timer(btimer_t *wid);
 btimer_t *start_bsock_timer(BSOCK *bs, uint32_t wait);
 void stop_bsock_timer(btimer_t *wid);
+
+#endif /* __LIBPROTOS_H */