void vFSLog(const char *format, va_list args) { time_t currenttime; char *timeStamp; char tbuffer[1024]; char *info; size_t len; int num; currenttime = time(0); timeStamp = afs_ctime(¤ttime, tbuffer, sizeof(tbuffer)); timeStamp[24] = ' '; /* ts[24] is the newline, 25 is the null */ info = &timeStamp[25]; if (mrafsStyleLogs || threadIdLogs) { num = (*threadNumProgram) (); if (num > -1) { (void)afs_snprintf(info, (sizeof tbuffer) - strlen(tbuffer), "[%d] ", num); info += strlen(info); } } (void)afs_vsnprintf(info, (sizeof tbuffer) - strlen(tbuffer), format, args); len = strlen(tbuffer); LOCK_SERVERLOG(); #ifndef AFS_NT40_ENV if (serverLogSyslog) { syslog(LOG_INFO, "%s", info); } else #endif if (serverLogFD > 0) (void)write(serverLogFD, tbuffer, len); UNLOCK_SERVERLOG(); #if !defined(AFS_PTHREAD_ENV) && !defined(AFS_NT40_ENV) if (!serverLogSyslog) { fflush(stdout); fflush(stderr); /* in case they're sharing the same FD */ } #endif } /*vFSLog */
* OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ #include <afs/stds.h> #include <afs/afsutil.h> #include <limits.h> static int try (const char *format, ...) { int ret; va_list ap; char buf1[256], buf2[256]; va_start (ap, format); ret = afs_vsnprintf (buf1, sizeof(buf1), format, ap); if (ret >= sizeof(buf1)) { fprintf(stderr, "increase buf and try again\n"); exit(1); } va_end (ap); va_start (ap, format); vsprintf (buf2, format, ap); ret = strcmp (buf1, buf2); if (ret) printf ("failed: format = \"%s\", \"%s\" != \"%s\"\n", format, buf1, buf2); va_end (ap); return ret; }