-- Salt's ComputerCraft Storage Network Script
--
-- For information on this script, physical in-world setup, and configuration,
-- see: https://git.desu.ltd/salt/mc-scripts/src/branch/master/storage-net

-- Default configuration values. Override in config.lua. DO NOT CHANGE HERE
mode                = "undefined"       -- The mode of function for this node
networkid           = 0                 -- Unique ID for this network
port_broadcast      = 42914             -- Port for M->S traffic
port_return         = 42915             -- Port for S->M traffic

-- This loads config.lua. See masterconfig.lua and slaveconfig.lua for example
-- configurations.
require "config"

-- Startup diagnostics
print("Salt's CC Storage Net")
print("Computer ID: " .. os.getComputerID())
print("Computer " .. os.getComputerID() .. " running as " .. mode)

-- Common functions
function c_mainLoop(loopfunc)
    -- Loops a thing forever
    while true do
        loopfunc()
        sleep(1)
    end
end
-- Master functions
function m_loop()
    -- The main loop of the master server
end
-- Slave functions
function s_loop()
    -- The main loop of any slave nodes
end

-- Application entrypoint
function main ()
    if (mode == "master") then
        c_mainLoop(m_loop)
    elseif (mode == "slave") then
        c_mainLoop(s_loop)
    else
        error("Invalid mode: " .. mode .. ", please configure this node appropriately")
    end
end

main()