A UNIX local messaging service
Find a file
2024-05-13 00:03:41 +01:00
libs djumbai_client_receiver done? 2024-05-12 11:57:10 +01:00
src Final? 2024-05-12 23:57:59 +01:00
test fix: groupID wrong type, function headers 2024-05-12 23:04:01 +01:00
.clang-format basic structure and client process chain done 2024-05-10 20:34:01 +01:00
.gitignore basic structure and client process chain done 2024-05-10 20:34:01 +01:00
LICENSE Initial commit 2024-04-29 16:16:33 +01:00
Makefile Final 2024-05-13 00:03:41 +01:00
README.md Final 2024-05-13 00:03:41 +01:00

Djumbai

A UNIX local messaging service

Components

  1. Initiation of Message Sending:

    • A Unix user initiates a message sending process using a Command Line Interface (CLI) tool.
  2. Creation of Processes:

    • The CLI tool spawns a process called djumbai-client-send. This process runs under the context of the initiating Unix user.
    • djumbai-client-send spawns another process called djumbai-enqueue, which operates under the djumbaiq user context.
  3. Message Queuing:

    • djumbai-enqueue process writes the message to a message queue, which functions as a named pipe. This queue acts as an intermediary storage for the message.
  4. Message Retrieval:

    • The djumbai-dequeue process, functioning as a daemon, runs under the djumbaid user context. Its purpose is to retrieve messages from the message queue.
  5. Message Transmission:

    • Once messages are retrieved, djumbai-dequeue sends them to the djumbai-send process. This process operates with root privileges.
  6. Receiving and Delivery:

    • djumbai-send spawns a process named djumbai-client-receive, which operates under the context of the user/group intended to receive the message.
    • djumbai-client-receive writes the received message to the recipient's message-box.
  7. Message Retrieval by User:

    • The recipient Unix user can utilize the CLI tool at any time to read messages stored in their inbox.

This structured breakdown elucidates the sequential steps involved in the Unix message sending process, including process spawning, message queuing, retrieval, transmission, and eventual delivery to the intended recipient.

Directories

Mail queue - FIFO in /djumbai/fifos/message_queue and can only be accessed by users from the djumbai_queue group, which contains djumbai_enqueue and djumbai_dequeue

Send FIFO - FIFO in /djumbai/fifos/send_fifo and can only be accessed by users in the djumbai_send group, which contains djumbai_dequeue and djumbai_send

Personal mailbox _ Directory in /djumbai/user/$uid/mailbox, which can only be accessed by the user with UID $uid

Personal SentBox - Directory in /djumbai/user/$uid/sentbox, which can only be accessed by the user with UID $uid

Group mailbox - Directory in /djumbai/group/$gid/mailbox, which can only be accessed by the group with GID $gid

Running

  1. Run make
  2. Run make setup
  3. The binaries will be inside the bin folder (Should run both djumbai_send and djumbai_dequeue as daemons).
  4. Use the client cli to send and see messages.