afa884
diff -up openchange-openchange-2.3-VULCAN/libmapi/cdo_mapi.c.samba-4.2.0-rc2 openchange-openchange-2.3-VULCAN/libmapi/cdo_mapi.c
afa884
--- openchange-openchange-2.3-VULCAN/libmapi/cdo_mapi.c.samba-4.2.0-rc2	2015-12-03 11:20:17.502119228 +0100
afa884
+++ openchange-openchange-2.3-VULCAN/libmapi/cdo_mapi.c	2015-12-03 11:20:44.524118102 +0100
afa884
@@ -337,6 +337,9 @@ _PUBLIC_ enum MAPISTATUS SetMAPIDebugLev
afa884
 	ret = lpcfg_set_cmdline(mapi_ctx->lp_ctx, "log level", debuglevel);
afa884
 	talloc_free(debuglevel);
afa884
 
afa884
+	if (ret)
afa884
+		_oc_log_samba_level = level;
afa884
+
afa884
 	return (ret == true) ? MAPI_E_SUCCESS : MAPI_E_INVALID_PARAMETER;
afa884
 }
afa884
 
afa884
diff -up openchange-openchange-2.3-VULCAN/libmapi/oc_log.c.samba-4.2.0-rc2 openchange-openchange-2.3-VULCAN/libmapi/oc_log.c
afa884
--- openchange-openchange-2.3-VULCAN/libmapi/oc_log.c.samba-4.2.0-rc2	2015-12-03 11:11:01.801142393 +0100
afa884
+++ openchange-openchange-2.3-VULCAN/libmapi/oc_log.c	2015-12-03 11:27:22.921101494 +0100
afa884
@@ -20,7 +20,9 @@
afa884
 */
afa884
 
afa884
 #include "libmapi/libmapi.h"
afa884
-#include <util/debug.h>
afa884
+#include <stdio.h>
afa884
+
afa884
+int _oc_log_samba_level = 0;
afa884
 
afa884
 void oc_log(enum oc_log_level level, const char *fmt_string, ...)
afa884
 {
afa884
@@ -47,12 +49,16 @@ void oc_logv(enum oc_log_level level, co
afa884
 		samba_level = 0;
afa884
 	}
afa884
 
afa884
+	if (samba_level && !(_oc_log_samba_level & samba_level))
afa884
+		return;
afa884
+
afa884
 	/* Add a trailing newline if one is not already present */
afa884
 	if (line[strlen(line)-1] == '\n') {
afa884
-		DEBUG(samba_level, ("%s", line));
afa884
+		fprintf(stderr, "%s", line);
afa884
 	} else {
afa884
-		DEBUG(samba_level, ("%s\n", line));
afa884
+		fprintf(stderr, "%s\n", line);
afa884
 	}
afa884
+	fflush(stderr);
afa884
 }
afa884
 
afa884
 void oc_log_init_stdout()
afa884
diff -up openchange-openchange-2.3-VULCAN/libmapi/oc_log.h.samba-4.2.0-rc2 openchange-openchange-2.3-VULCAN/libmapi/oc_log.h
afa884
--- openchange-openchange-2.3-VULCAN/libmapi/oc_log.h.samba-4.2.0-rc2	2015-12-03 11:18:27.407123817 +0100
afa884
+++ openchange-openchange-2.3-VULCAN/libmapi/oc_log.h	2015-12-03 11:20:19.228119156 +0100
afa884
@@ -77,4 +77,6 @@ void oc_log_init_user(const char *progna
afa884
    defaulting to /var/log/openchange.log */
afa884
 void oc_log_init_server(const char *progname, struct loadparm_context *lp_ctx);
afa884
 
afa884
+extern int _oc_log_samba_level; /* Private, do not change it other than by SetMAPIDebugLevel() */
afa884
+
afa884
 #endif /* _OC_LOG_H_ */
afa884
diff -up openchange-openchange-2.3-VULCAN/mapiproxy/libmapiproxy/fault_util.c.samba-4.2.0-rc2 openchange-openchange-2.3-VULCAN/mapiproxy/libmapiproxy/fault_util.c
afa884
--- openchange-openchange-2.3-VULCAN/mapiproxy/libmapiproxy/fault_util.c.samba-4.2.0-rc2	2015-12-03 11:11:17.337141745 +0100
afa884
+++ openchange-openchange-2.3-VULCAN/mapiproxy/libmapiproxy/fault_util.c	2015-12-03 11:27:46.505100511 +0100
afa884
@@ -30,14 +30,14 @@
afa884
 #include "fault_util.h"
afa884
 #include "libmapi/libmapi.h"
afa884
 #include "libmapi/libmapi_private.h"
afa884
-#include <util/debug.h>
afa884
+#include <stdio.h>
afa884
 
afa884
 #include <samba/version.h>
afa884
 
afa884
 #include <execinfo.h>
afa884
 
afa884
 /**
afa884
-   \details print a backtrace using DEBUG() macro.
afa884
+   \details print a backtrace (*not* using DEBUG() macro).
afa884
 
afa884
  */
afa884
 _PUBLIC_ void debug_print_backtrace(int dbg_level)
afa884
@@ -47,16 +47,19 @@ _PUBLIC_ void debug_print_backtrace(int
afa884
 	size_t backtrace_size;
afa884
 	char **backtrace_strings;
afa884
 
afa884
+	if (!(_oc_log_samba_level & dbg_level))
afa884
+		return;
afa884
+
afa884
 	backtrace_size = backtrace(backtrace_stack, BACKTRACE_SIZE);
afa884
 	backtrace_strings = backtrace_symbols(backtrace_stack, backtrace_size);
afa884
 
afa884
-	DEBUG(dbg_level, ("BACKTRACE: %lu stack frames:\n", (unsigned long)backtrace_size));
afa884
+	fprintf(stderr, "BACKTRACE: %lu stack frames:\n", (unsigned long)backtrace_size);
afa884
 
afa884
 	if (backtrace_strings) {
afa884
 		int i;
afa884
 
afa884
 		for (i = 0; i < backtrace_size; i++) {
afa884
-			DEBUGADD(dbg_level, (" #%.2u %s\n", i, backtrace_strings[i]));
afa884
+			fprintf(stderr, " #%.2u %s\n", i, backtrace_strings[i]);
afa884
 		}
afa884
 
afa884
 		free(backtrace_strings);
afa884
diff -up openchange-openchange-2.3-VULCAN/mapiproxy/libmapiproxy/fault_util.h.samba-4.2.0-rc2 openchange-openchange-2.3-VULCAN/mapiproxy/libmapiproxy/fault_util.h
afa884
--- openchange-openchange-2.3-VULCAN/mapiproxy/libmapiproxy/fault_util.h.samba-4.2.0-rc2	2015-12-03 11:11:37.089140922 +0100
afa884
+++ openchange-openchange-2.3-VULCAN/mapiproxy/libmapiproxy/fault_util.h	2015-12-03 11:26:38.633103340 +0100
afa884
@@ -28,7 +28,7 @@
afa884
  * It will print information about the error and if is_fatal is true abort()
afa884
  * will be called.
afa884
  *
afa884
- * DEBUG macro will be used to print a report with the following format:
afa884
+ * DEBUG macro will *not* be used to print a report with the following format:
afa884
  * @code
afa884
  *  ==================================
afa884
  *  OPENCHANGE INTERNAL ERROR: pid 123
afa884
@@ -59,9 +59,10 @@
afa884
  * @see DEBUG()
afa884
  */
afa884
 #define OC_PANIC( is_fatal, body ) \
afa884
-	DEBUGSEP(0); \
afa884
-	DEBUG(0, ("OPENCHANGE INTERNAL ERROR: pid %d\n", (int)getpid())); \
afa884
-	DEBUG(0, body); \
afa884
+	fprintf(stderr,"\n"); \
afa884
+	fprintf(stderr, "OPENCHANGE INTERNAL ERROR: pid %d\n", (int)getpid()); \
afa884
+	fprintf(stderr, body); \
afa884
+	fflush(stderr); \
afa884
 	openchange_abort(is_fatal);
afa884
 
afa884
 #ifndef __BEGIN_DECLS
afa884
diff -up openchange-openchange-2.3-VULCAN/mapiproxy/libmapiproxy/mapi_handles.c.samba-4.2.0-rc2 openchange-openchange-2.3-VULCAN/mapiproxy/libmapiproxy/mapi_handles.c
afa884
--- openchange-openchange-2.3-VULCAN/mapiproxy/libmapiproxy/mapi_handles.c.samba-4.2.0-rc2	2015-12-03 11:12:08.457139614 +0100
afa884
+++ openchange-openchange-2.3-VULCAN/mapiproxy/libmapiproxy/mapi_handles.c	2015-12-03 11:26:50.473102847 +0100
afa884
@@ -429,7 +429,7 @@ static int mapi_handles_traverse_delete(
afa884
 		OC_DEBUG(5, "handles being released must NOT have child handles attached to them (%s is a child of %s)", handle_str, container_handle_str);
afa884
 		handle = strtol((const char *) handle_str, NULL, 16);
afa884
 		/* abort(); */
afa884
-		/* DEBUG(5, ("deleting child handle: %d, %s\n", handle, handle_str)); */
afa884
+		/* OC_DEBUG(5, ("deleting child handle: %d, %s\n", handle, handle_str)); */
afa884
 		mapi_handles_delete(handles_private->handles_ctx, handle);
afa884
 	}
afa884