5 #include <libcryptsetup.h>
8 * This is an example of function that can be registered using crypt_set_log_callback API.
10 * Its prototype is void (*log)(int level, const char *msg, void *usrptr) as defined
11 * in crypt_set_log_callback
13 static void simple_syslog_wrapper(int level, const char *msg, void *usrptr)
15 const char *prefix = (const char *)usrptr;
19 case CRYPT_LOG_NORMAL: priority = LOG_NOTICE; break;
20 case CRYPT_LOG_ERROR: priority = LOG_ERR; break;
21 case CRYPT_LOG_VERBOSE: priority = LOG_INFO; break;
22 case CRYPT_LOG_DEBUG: priority = LOG_DEBUG; break;
24 fprintf(stderr, "Unsupported log level requested!\n");
29 syslog(priority, "%s:%s", prefix, msg);
31 syslog(priority, "%s", msg);
36 struct crypt_device *cd;
37 char usrprefix[] = "cslog_example";
41 printf("Using of libcryptsetup requires super user privileges.\n");
45 openlog("cryptsetup", LOG_CONS | LOG_PID, LOG_USER);
47 /* Initialize empty crypt device context */
48 r = crypt_init(&cd, NULL);
50 printf("crypt_init() failed.\n");
54 /* crypt_set_log_callback() - register a log function for crypt context */
55 crypt_set_log_callback(cd, &simple_syslog_wrapper, (void *)usrprefix);
57 /* send messages ithrough the crypt_log() interface */
58 crypt_log(cd, CRYPT_LOG_NORMAL, "This is normal log message");
59 crypt_log(cd, CRYPT_LOG_ERROR, "This is error log message");
60 crypt_log(cd, CRYPT_LOG_VERBOSE, "This is verbose log message");
61 crypt_log(cd, CRYPT_LOG_DEBUG, "This is debug message");
63 /* release crypt context */
66 /* Initialize default (global) log function */
67 crypt_set_log_callback(NULL, &simple_syslog_wrapper, NULL);
69 crypt_log(NULL, CRYPT_LOG_NORMAL, "This is normal log message");
70 crypt_log(NULL, CRYPT_LOG_ERROR, "This is error log message");
71 crypt_log(NULL, CRYPT_LOG_VERBOSE, "This is verbose log message");
72 crypt_log(NULL, CRYPT_LOG_DEBUG, "This is debug message");