31 lines
768 B
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);
|
|
}
|