infusion / node-dhcp

A DHCP server and client written in pure JavaScript
https://raw.org/article/a-pure-javascript-dhcp-implementation/
MIT License
297 stars 74 forks source link

Close DHCP server correct after bound #36

Open wake-0 opened 6 years ago

wake-0 commented 6 years ago

Hello all!

How should the server correctly be closed after an IP address was bound? I actually added it to the on bound but not sure if this is the correct place, because the following error appears "Error: Not running." Without the server.close() in the on bound no error appears but I am also not able to close the server :D

Example code:

server.on('bound', function(state) {
    console.log("bound ip address.");
    server.close();   
});

This shows the "Error: Not running".

process.on('uncaughtException', (err) => {
    console.log(err.stack);
});
infusion commented 6 years ago

Why would you close the server after the IP was bound? DHCP is based on UDP, which is stateless, there is no open connection. Closing the server means no incoming connections are handled anymore. Or is this your desired behavior, that you handle only one single client and as soon as the user got an IP, you terminate the server? Then closing the server on bound should be ok.

wake-0 commented 6 years ago

Yeah exactly. I created a test, where I assign a single ip address via dhcp and afterwards the server can be stopped. --> If the DHCP server is closed like described above I will get a "Error: not running". Can this behaviour be fixed?

isarantis commented 5 years ago

Any news about that? i would like to make something similar to start/stop the service when i want.