* Version $Id$
*/
/*
- Copyright (C) 2000, 2001, 2002 Kern Sibbald and John Walker
+ Copyright (C) 2000-2006 Kern Sibbald
This program is free software; you can redistribute it and/or
- modify it under the terms of the GNU General Public License as
- published by the Free Software Foundation; either version 2 of
- the License, or (at your option) any later version.
+ modify it under the terms of the GNU General Public License
+ 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,
but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- General Public License for more details.
-
- You should have received a copy of the GNU General Public
- License along with this program; if not, write to the Free
- Software Foundation, Inc., 59 Temple Place - Suite 330, Boston,
- MA 02111-1307, USA.
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ the file LICENSE for additional details.
*/
#undef M_TERM
#undef M_RESTORED
#undef M_SECURITY
+#undef M_ALERT
+#undef M_VOLMGMT
/*
- * Most of these message levels are more or less obvious.
+ * Most of these message levels are more or less obvious.
* They have evolved somewhat during the development of Bacula,
* and here are some of the details of where I am trying to
* head (in the process of changing the code) as of 15 June 2002.
* M_FATAL Bacula detected a fatal Job error. The Job will be killed,
* but Bacula continues running.
* M_ERROR Bacula detected a Job error. The Job will continue running
- * but the termination status will be error.
+ * but the termination status will be error.
* M_WARNING Job warning message.
* M_INFO Job information message.
*
* M_SECURITY For security viloations. This is equivalent to FATAL.
* (note, this is currently being implemented in 1.33).
*
+ * M_ALERT For Tape Alert messages.
+ *
+ * M_VOLMGMT Volume Management message
*/
enum {
- M_DEBUG = 1, /* debug message */
- M_ABORT, /* MUST abort immediately */
+ /* Keep M_ABORT=1 for dlist.h */
+ M_ABORT = 1, /* MUST abort immediately */
+ M_DEBUG, /* debug message */
M_FATAL, /* Fatal error, stopping job */
M_ERROR, /* Error, but recoverable */
M_WARNING, /* Warning message */
M_TERM, /* Terminating daemon normally */
M_RESTORED, /* ls -l of restored files */
M_SECURITY, /* security violation */
+ M_ALERT, /* tape alert messages */
+ M_VOLMGMT /* Volume management messages */
};
-#define M_MAX M_SECURITY /* keep this updated ! */
+#define M_MAX M_VOLMGMT /* keep this updated ! */
/* Define message destination structure */
/* *** FIXME **** where should be extended to handle multiple values */
} DEST;
/* Message Destination values for dest field of DEST */
-#define MD_SYSLOG 1 /* send msg to syslog */
-#define MD_MAIL 2 /* email group of messages */
-#define MD_FILE 3 /* write messages to a file */
-#define MD_APPEND 4 /* append messages to a file */
-#define MD_STDOUT 5 /* print messages */
-#define MD_STDERR 6 /* print messages to stderr */
-#define MD_DIRECTOR 7 /* send message to the Director */
-#define MD_OPERATOR 8 /* email a single message to the operator */
-#define MD_CONSOLE 9 /* send msg to UserAgent or console */
-#define MD_MAIL_ON_ERROR 10 /* email messages if job errors */
+enum {
+ MD_SYSLOG = 1, /* send msg to syslog */
+ MD_MAIL, /* email group of messages */
+ MD_FILE, /* write messages to a file */
+ MD_APPEND, /* append messages to a file */
+ MD_STDOUT, /* print messages */
+ MD_STDERR, /* print messages to stderr */
+ MD_DIRECTOR, /* send message to the Director */
+ MD_OPERATOR, /* email a single message to the operator */
+ MD_CONSOLE, /* send msg to UserAgent or console */
+ MD_MAIL_ON_ERROR, /* email messages if job errors */
+ MD_CATALOG /* sent to catalog Log table */
+};
+
+/* Queued message item */
+struct MQUEUE_ITEM {
+ dlink link;
+ int type;
+ time_t mtime;
+ char msg[1];
+};
+
+
+void d_msg(const char *file, int line, int level, const char *fmt,...);
+void e_msg(const char *file, int line, int type, int level, const char *fmt,...);
+void Jmsg(JCR *jcr, int type, time_t mtime, const char *fmt,...);
+void Qmsg(JCR *jcr, int type, time_t mtime, const char *fmt,...);
+bool get_trace(void);
+typedef void (*sql_query)(JCR *jcr, const char *cmd);
+extern DLL_IMP_EXP sql_query p_sql_query;
-void d_msg(char *file, int line, int level, char *fmt,...);
-void e_msg(char *file, int line, int type, int level, char *fmt,...);
-void Jmsg(JCR *jcr, int type, int level, char *fmt,...);
+extern DLL_IMP_EXP int debug_level;
+extern DLL_IMP_EXP int verbose;
+extern DLL_IMP_EXP char my_name[];
+extern DLL_IMP_EXP const char * working_directory;
+extern DLL_IMP_EXP time_t daemon_start_time;
-extern int debug_level;
-extern int verbose;
-extern char my_name[];
-extern char *working_directory;
-extern time_t daemon_start_time;
-extern char catalog_db[];
+extern DLL_IMP_EXP int console_msg_pending;
+extern DLL_IMP_EXP FILE * con_fd; /* Console file descriptor */
+extern DLL_IMP_EXP brwlock_t con_lock; /* Console lock structure */