* WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE.
*/
-#define RCSID "$Id: utils.c,v 1.14 2001/05/23 03:39:14 paulus Exp $"
+#define RCSID "$Id: utils.c,v 1.18 2002/03/05 15:14:04 dfs Exp $"
#include <stdio.h>
#include <ctype.h>
#include <fcntl.h>
#include <syslog.h>
#include <netdb.h>
+#include <time.h>
#include <utmp.h>
#include <pwd.h>
#include <sys/param.h>
neg = 0;
++fmt;
switch (c) {
+ case 'l':
+ c = *fmt++;
+ switch (c) {
+ case 'd':
+ val = va_arg(args, long);
+ if (val < 0) {
+ neg = 1;
+ val = -val;
+ }
+ base = 10;
+ break;
+ case 'u':
+ val = va_arg(args, unsigned long);
+ base = 10;
+ break;
+ default:
+ *buf++ = '%'; --buflen;
+ *buf++ = 'l'; --buflen;
+ --fmt; /* so %lz outputs %lz etc. */
+ continue;
+ }
+ break;
case 'd':
i = va_arg(args, int);
if (i < 0) {
return;
}
- dbglog("%s %P", tag, p - PPP_HDRLEN, len + PPP_HDRLEN);
+ dbglog("%s %P", tag, p, len);
}
/* Procedures for locking the serial device using a lock file. */
result = mklock (dev, (void *) 0);
if (result == 0) {
- strlcpy(lock_file, sizeof(lock_file), dev);
+ strlcpy(lock_file, dev, sizeof(lock_file));
return 0;
}
major(sbuf.st_rdev), minor(sbuf.st_rdev));
#else
char *p;
+ char lockdev[MAXPATHLEN];
+
+ if ((p = strstr(dev, "dev/")) != NULL) {
+ dev = p + 4;
+ strncpy(lockdev, dev, MAXPATHLEN-1);
+ lockdev[MAXPATHLEN-1] = 0;
+ while ((p = strrchr(lockdev, '/')) != NULL) {
+ *p = '_';
+ }
+ dev = lockdev;
+ } else
+ if ((p = strrchr(dev, '/')) != NULL)
+ dev = p + 1;
- if ((p = strrchr(dev, '/')) != NULL)
- dev = p + 1;
slprintf(lock_file, sizeof(lock_file), "%s/LCK..%s", LOCK_DIR, dev);
#endif