debug.c revision 1a7529bf5f867b43e0475f7f9ac0cd8671fb16f1
40f53fa8d9c6a4fc38c0014495e7a42b08f52481David Lawrence Simo Sorce <ssorce@redhat.com>
0c27b3fe77ac1d5094ba3521e8142d9e7973133fMark Andrews Stephen Gallagher <sgallagh@redhat.com>
0c27b3fe77ac1d5094ba3521e8142d9e7973133fMark Andrews Copyright (C) 2009 Red Hat
5fc7ba3e1ac5d72239e9971e0f469dd5796738f9Andreas Gustafsson This program is free software; you can redistribute it and/or modify
ab023a65562e62b85a824509d829b6fad87e00b1Rob Austein it under the terms of the GNU General Public License as published by
9c3531d72aeaad6c5f01efe6a1c82023e1379e4dDavid Lawrence the Free Software Foundation; either version 3 of the License, or
5fc7ba3e1ac5d72239e9971e0f469dd5796738f9Andreas Gustafsson (at your option) any later version.
593cb00bd17e5e2ab0dcb7c635a9a81082dc5d0eAndreas Gustafsson This program is distributed in the hope that it will be useful,
593cb00bd17e5e2ab0dcb7c635a9a81082dc5d0eAndreas Gustafsson but WITHOUT ANY WARRANTY; without even the implied warranty of
b1866070ef4fb9e17bff16ad458f629bbc5a4accwpk MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
9aba20edee4e704433a464ae43b070b0775de506Mark Andrews GNU General Public License for more details.
9aba20edee4e704433a464ae43b070b0775de506Mark Andrews You should have received a copy of the GNU General Public License
1a69a1a78cfaa86f3b68bbc965232b7876d4da2aDavid Lawrence along with this program. If not, see <http://www.gnu.org/licenses/>.
5fc7ba3e1ac5d72239e9971e0f469dd5796738f9Andreas Gustafssonint debug_timestamps = SSSDBG_TIMESTAMP_UNRESOLVED;
673ce7aebbb6d01c75b95f6df1ec491d6422b951Andreas Gustafssonint debug_microseconds = SSSDBG_MICROSECONDS_UNRESOLVED;
5fc7ba3e1ac5d72239e9971e0f469dd5796738f9Andreas Gustafssonerrno_t set_debug_file_from_fd(const int fd)
600cfa2ba4c50017581b6c14e3a688a82ecebbe0David Lawrence DEBUG(1, ("fdopen failed [%d][%s].\n", ret, strerror(ret)));
5fc7ba3e1ac5d72239e9971e0f469dd5796738f9Andreas Gustafsson if ((old_level != 0) && !(old_level & 0x000F))
d6f99498d624d5c5c8ee45067df02e6a6b35a1a3Mark Andrews vfprintf(debug_file ? debug_file : stderr, format, ap);
5fc7ba3e1ac5d72239e9971e0f469dd5796738f9Andreas Gustafsson if ((old_level != 0) && !(old_level & 0x000F))
9a859983d7059a6eb9c877c1d2ac6a3a5b7170f7Evan Huntvoid ldb_debug_messages(void *context, enum ldb_debug_level level,
b66b333f59cf51ef87f973084a5023acd9317fb2Evan Huntint open_debug_file_ex(const char *filename, FILE **filep)
1d761cb453c76353deb8423c78e98d00c5f86ffaEvan Hunt ret = asprintf(&logpath, "%s/%s.log", LOG_PATH, log_file);
b1866070ef4fb9e17bff16ad458f629bbc5a4accwpk if (f == NULL) {
b1866070ef4fb9e17bff16ad458f629bbc5a4accwpk sss_log(SSS_LOG_EMERG, "Could not open file [%s]. Error: [%d][%s]\n",
9aba20edee4e704433a464ae43b070b0775de506Mark Andrews /* Check for EINTR, which means we should retry
9aba20edee4e704433a464ae43b070b0775de506Mark Andrews * because the system call was interrupted by a
a903095bf4512dae561c7f6fc7854a51bebf334aMark Andrews /* Even if we were unable to close the debug log, we need to make
a903095bf4512dae561c7f6fc7854a51bebf334aMark Andrews * sure that we open up a new one. Log rotation will remove the
a903095bf4512dae561c7f6fc7854a51bebf334aMark Andrews * current file, so all debug messages will be disappearing.
7ab0e69f61e61e81d489c95c7ebd981e74e7ef16Andreas Gustafsson * We should write an error to the syslog warning of the resource
e672951ed28b2e9cc7a19c3d7fa4a258382f981cAutomatic Updater * leak and then proceed with opening the new file.
ab023a65562e62b85a824509d829b6fad87e00b1Rob Austein sss_log(SSS_LOG_ALERT, "Could not close debug file [%s]. [%d][%s]\n",
5fc7ba3e1ac5d72239e9971e0f469dd5796738f9Andreas Gustafsson sss_log(SSS_LOG_ALERT, "Attempting to open new file anyway. "
5fc7ba3e1ac5d72239e9971e0f469dd5796738f9Andreas Gustafsson "Be aware that this is a resource leak\n");