mkdir -p "$NANO_POW_LOGS";
if [ "$1" = '--server' ]; then
shift;
- node "$SCRIPT_DIR"/server.js >> "$NANO_POW_LOGS"/nano-pow-server-$(date -I).log 2>&1 & echo "$!" > "$NANO_POW_HOME"/server.pid;
+ node "$SCRIPT_DIR"/server.js --max-http-header-size=1024 >> "$NANO_POW_LOGS"/nano-pow-server-$(date -I).log 2>&1 & echo "$!" > "$NANO_POW_HOME"/server.pid;
sleep 0.1;
if [ "$(ps | grep $(cat $NANO_POW_HOME/server.pid))" = '' ]; then
cat $(ls -td "$NANO_POW_LOGS"/* | head -n1);
process.title = 'NanoPow Server'
const MAX_BODY_SIZE = 256
+const MAX_HEADER_COUNT = 32
const MAX_IDLE_TIME = 5000
const MAX_REQUEST_COUNT = 10
const MAX_REQUEST_SIZE = 1024
return
}
const client = requests.get(req.socket.remoteAddress)
- if (process.send != null || client == null || client.time < Date.now() - MAX_REQUEST_TIME) {
+ if (process.send != null || req.socket.remoteAddress === '::1' || client == null || client.time < Date.now() - MAX_REQUEST_TIME) {
requests.set(req.socket.remoteAddress, { tokens: MAX_REQUEST_COUNT, time: Date.now() })
} else {
if (--client.tokens <= 0) {
server.headersTimeout = MAX_IDLE_TIME
server.keepAliveTimeout = MAX_IDLE_TIME
+server.maxHeadersCount = MAX_HEADER_COUNT
server.on('connection', (c: Socket): void => {
c.setTimeout(MAX_IDLE_TIME, () => c.destroy())