Skip to content
Snippets Groups Projects
Commit 6c8c0a3e authored by Ruben Otto's avatar Ruben Otto :crab:
Browse files

feat: send daemon message to kernel

parent 033a48a8
No related branches found
No related tags found
No related merge requests found
#include "../../common/include/message.h"
#include "../../common/include/userspace_comm.h"
#include "../include/receive.h"
#include "../include/send.h"
#include <errno.h>
#include <stddef.h>
#include <string.h>
#include <stdint.h>
#include <stdlib.h>
#include <stdio.h>
......@@ -11,8 +15,11 @@
#include <signal.h>
userspace_receive_handle_t userspace_receive_handle;
kernel_send_handle_t kernel_send_handle;
void signal_handler(int sig) {
destroy_userspace_receive_handle(&userspace_receive_handle);
destroy_kernel_send_handle(&kernel_send_handle);
exit(1);
}
......@@ -65,7 +72,17 @@ void print_message_data(message_t* message) {
int main() {
if (create_userspace_receive_handle(&userspace_receive_handle) != 0) {
perror("Failed to create receive module");
if (errno == EEXIST) {
fprintf(stderr, "Failed to create message queue (file '%s' exists, has another process already created the message queue?): %s\n", MSG_QUEUE_KEY, strerror(errno));
} else {
perror("Failed to create message queue");
}
return EXIT_FAILURE;
}
if (create_kernel_send_handle(&kernel_send_handle) != 0) {
destroy_userspace_receive_handle(&userspace_receive_handle);
perror("Failed to create kernel connection (is the kernel module loaded?)");
return EXIT_FAILURE;
}
......@@ -85,6 +102,9 @@ int main() {
printf("Received data from %d with length %d: ", message.measurement_id, message.length);
print_message_data(&message);
if (send_kernel_message(&kernel_send_handle, &message) == -1) {
printf(" (failed to send to kernel)");
}
printf("\n");
}
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment