*
*/
/*
- Copyright (C) 2000-2005 Kern Sibbald
+ 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
#include "bacula.h"
#include "jcr.h"
-#if !defined(HAVE_CONSOLE)
-#if defined(HAVE_CYGWIN) || defined(HAVE_WIN32)
-#include <windows.h>
-#endif
-#endif
-
#define FULL_LOCATION 1 /* set for file:line in Debug messages */
/*
FILE *con_fd = NULL; /* Console file descriptor */
brwlock_t con_lock; /* Console lock structure */
-#ifdef HAVE_POSTGRESQL
+
+#if defined(HAVE_POSTGRESQL)
char catalog_db[] = "PostgreSQL";
-#else
-#ifdef HAVE_MYSQL
+#elif defined(HAVE_MYSQL)
char catalog_db[] = "MySQL";
-#else
-#ifdef HAVE_SQLITE
+#elif defined(HAVE_SQLITE)
char catalog_db[] = "SQLite";
#else
char catalog_db[] = "Internal";
#endif
-#endif
-#endif
const char *host_os = HOST_OS;
const char *distname = DISTNAME;
l++;
} else {
l = argv[0];
-#if defined(HAVE_CYGWIN) || defined(HAVE_WIN32)
+#if defined(HAVE_WIN32)
/* On Windows allow c: junk */
if (l[1] == ':') {
l += 2;
init_msg(JCR *jcr, MSGS *msg)
{
DEST *d, *dnew, *temp_chain = NULL;
+#ifndef HAVE_WIN32
int i;
+#endif
if (jcr == NULL && msg == NULL) {
init_last_jobs_list();
if (msg == NULL) {
daemon_msgs = (MSGS *)malloc(sizeof(MSGS));
memset(daemon_msgs, 0, sizeof(MSGS));
-#ifndef WIN32
+#ifndef HAVE_WIN32
for (i=1; i<=M_MAX; i++) {
add_msg_dest(daemon_msgs, MD_STDOUT, i, NULL, NULL);
}
#endif
- Dmsg1(050, "Create daemon global message resource 0x%x\n", daemon_msgs);
+ Dmsg1(050, "Create daemon global message resource %p\n", daemon_msgs);
return;
}
daemon_msgs->dest_chain = temp_chain;
memcpy(daemon_msgs->send_msg, msg->send_msg, sizeof(msg->send_msg));
}
- Dmsg2(250, "Copy message resource 0x%x to 0x%x\n", msg, temp_chain);
+ Dmsg2(250, "Copy message resource %p to %p\n", msg, temp_chain);
}
console_msg_pending = 1;
}
close(fd);
- con_fd = fopen(con_fname, "a+");
+ con_fd = fopen(con_fname, "a+b");
if (!con_fd) {
berrno be;
Emsg2(M_ERROR, 0, _("Could not open console message file %s: ERR=%s\n"),
for (d=msg->dest_chain; d; d=d->next) {
if (dest_code == d->dest_code && ((where == NULL && d->where == NULL) ||
(strcmp(where, d->where) == 0))) {
- Dmsg4(850, "Add to existing d=%x msgtype=%d destcode=%d where=%s\n",
+ Dmsg4(850, "Add to existing d=%p msgtype=%d destcode=%d where=%s\n",
d, msg_type, dest_code, NPRT(where));
set_bit(msg_type, d->msg_types);
set_bit(msg_type, msg->send_msg); /* set msg_type bit in our local */
if (mail_cmd) {
d->mail_cmd = bstrdup(mail_cmd);
}
- Dmsg5(850, "add new d=%x msgtype=%d destcode=%d where=%s mailcmd=%s\n",
+ Dmsg5(850, "add new d=%p msgtype=%d destcode=%d where=%s mailcmd=%s\n",
d, msg_type, dest_code, NPRT(where), NPRT(d->mail_cmd));
msg->dest_chain = d;
}
DEST *d;
for (d=msg->dest_chain; d; d=d->next) {
- Dmsg2(850, "Remove_msg_dest d=%x where=%s\n", d, NPRT(d->where));
+ Dmsg2(850, "Remove_msg_dest d=%p where=%s\n", d, NPRT(d->where));
if (bit_is_set(msg_type, d->msg_types) && (dest_code == d->dest_code) &&
((where == NULL && d->where == NULL) ||
(strcmp(where, d->where) == 0))) {
- Dmsg3(850, "Found for remove d=%x msgtype=%d destcode=%d\n",
+ Dmsg3(850, "Found for remove d=%p msgtype=%d destcode=%d\n",
d, msg_type, dest_code);
clear_bit(msg_type, d->msg_types);
Dmsg0(850, "Return rem_msg_dest\n");
POOLMEM *cmd, *line;
int len, stat;
- Dmsg1(850, "Close_msg jcr=0x%x\n", jcr);
+ Dmsg1(580, "Close_msg jcr=%p\n", jcr);
if (jcr == NULL) { /* NULL -> global chain */
msgs = daemon_msgs;
if (msgs == NULL) {
return;
}
- Dmsg1(850, "===Begin close msg resource at 0x%x\n", msgs);
+ Dmsg1(850, "===Begin close msg resource at %p\n", msgs);
cmd = get_pool_memory(PM_MESSAGE);
for (d=msgs->dest_chain; d; ) {
if (d->fd) {
case MD_CONSOLE:
Dmsg1(850, "CONSOLE for following msg: %s", msg);
if (!con_fd) {
- con_fd = fopen(con_fname, "a+");
+ con_fd = fopen(con_fname, "a+b");
Dmsg0(850, "Console file not open.\n");
}
if (con_fd) {
Pw(con_lock); /* get write lock on console message file */
errno = 0;
if (dtlen) {
- fwrite(dt, dtlen, 1, con_fd);
+ (void)fwrite(dt, dtlen, 1, con_fd);
}
len = strlen(msg);
if (len > 0) {
- fwrite(msg, len, 1, con_fd);
+ (void)fwrite(msg, len, 1, con_fd);
if (msg[len-1] != '\n') {
- fwrite("\n", 2, 1, con_fd);
+ (void)fwrite("\n", 2, 1, con_fd);
}
} else {
- fwrite("\n", 2, 1, con_fd);
+ (void)fwrite("\n", 2, 1, con_fd);
}
fflush(con_fd);
console_msg_pending = TRUE;
}
break;
case MD_SYSLOG:
- Dmsg1(850, "SYSLOG for collowing msg: %s\n", msg);
+ Dmsg1(850, "SYSLOG for following msg: %s\n", msg);
/*
* We really should do an openlog() here.
*/
if (!d->fd) {
POOLMEM *name = get_pool_memory(PM_MESSAGE);
make_unique_mail_filename(jcr, name, d);
- d->fd = fopen(name, "w+");
+ d->fd = fopen(name, "w+b");
if (!d->fd) {
berrno be;
d->fd = stdout;
case MD_FILE:
Dmsg1(850, "FILE for following msg: %s", msg);
if (!d->fd) {
- d->fd = fopen(d->where, "w+");
+ d->fd = fopen(d->where, "w+b");
if (!d->fd) {
berrno be;
d->fd = stdout;
case MD_APPEND:
Dmsg1(850, "APPEND for following msg: %s", msg);
if (!d->fd) {
- d->fd = fopen(d->where, "a");
+ d->fd = fopen(d->where, "ab");
if (!d->fd) {
berrno be;
d->fd = stdout;
if (!trace_fd) {
char fn[200];
bsnprintf(fn, sizeof(fn), "%s/bacula.trace", working_directory ? working_directory : ".");
- trace_fd = fopen(fn, "a+");
+ trace_fd = fopen(fn, "a+b");
}
if (trace_fd) {
fputs(buf, trace_fd);
if (level <= debug_level) {
if (!trace_fd) {
bsnprintf(buf, sizeof(buf), "%s/bacula.trace", working_directory);
- trace_fd = fopen(buf, "a+");
+ trace_fd = fopen(buf, "a+b");
}
#ifdef FULL_LOCATION
P(msg_queue_mutex);
jcr->msg_queue->append(item);
V(msg_queue_mutex);
-// Dmsg1(000, "queue item=%lu\n", (long unsigned)item);
}
free_memory(pool_buf);
}
P(msg_queue_mutex);
jcr->dequeuing = true;
foreach_dlist(item, jcr->msg_queue) {
-// Dmsg1(000, "dequeue item=%lu\n", (long unsigned)item);
Jmsg(jcr, item->type, item->mtime, "%s", item->msg);
}
jcr->msg_queue->destroy();