Files
djumbai/src/djumbai_enqueue/djumbai_enqueue.c

31 lines
768 B
C

#include "djumbai_enqueue.h"
int main() {
//Change the root of the djumbai_enqueue process so it doesn't have access to anything else.
chroot("/opt/djumbai/queue/");
const char *message_queue_path =
"mailqueue"; // Replace this with the path to your FIFO
// Open the FIFO for writing
int queue_fd;
queue_fd = open(message_queue_path, O_WRONLY);
if (queue_fd == -1) {
if (errno == ENOENT) {
// FIFO does not exist
printf("FIFO '%s' does not exist. Exiting...\n", message_queue_path);
return 1;
} else {
perror("open");
return 1;
}
}
// Read message from stdin
unsigned char buffer[MESSAGE_SIZE];
read(0, buffer, MESSAGE_SIZE);
// Write message to message queue
write(queue_fd, buffer, MESSAGE_SIZE);
close(queue_fd);
}