comparison rlgwebd.js @ 85:4303d94d87a2

rlgwebd.js: Unlink control socket at startup. Unlinking at shutdown doesn't work because at that time, the process is chroot'ed and unprivileged.
author John "Elwin" Edwards <elwin@sdf.org>
date Sun, 08 Jul 2012 17:49:43 -0700
parents d59dc5cef412
children bd2cf6dda28d
comparison
equal deleted inserted replaced
84:d59dc5cef412 85:4303d94d87a2
990 990
991 function shutdown () { 991 function shutdown () {
992 httpServer.close(); 992 httpServer.close();
993 httpServer.removeAllListeners('request'); 993 httpServer.removeAllListeners('request');
994 ctlServer.close(); 994 ctlServer.close();
995 fs.unlink(ctlsocket);
996 tslog("Shutting down..."); 995 tslog("Shutting down...");
997 process.exit(); 996 process.exit();
998 } 997 }
999 998
1000 function conHandler(chunk) { 999 function conHandler(chunk) {
1024 tslog("Not running as root, cannot chroot."); 1023 tslog("Not running as root, cannot chroot.");
1025 process.exit(1); 1024 process.exit(1);
1026 } 1025 }
1027 1026
1028 var httpServer; // declare here so shutdown() can find it 1027 var httpServer; // declare here so shutdown() can find it
1028
1029 /* This could be nonblocking, but nothing else can start yet anyway. */
1030 if (fs.existsSync(ctlsocket)) {
1031 fs.unlinkSync(ctlsocket);
1032 }
1029 1033
1030 /* Open the control socket before chrooting where it can't be found */ 1034 /* Open the control socket before chrooting where it can't be found */
1031 var ctlServer = net.createServer(function (sock) { 1035 var ctlServer = net.createServer(function (sock) {
1032 sock.on('data', conHandler); 1036 sock.on('data', conHandler);
1033 }); 1037 });