Tem um bug quando é um arquivo de configuração simples, tipo esse (arquivo basic.conf):
server {
listen = 1026
route cgi{
root = /cgi
index = random_file.py
}
}
server {
listen = 1027
}
[ ] Bug do listen
O que acontece é la na função create(). Ele configura o server corretamente trocando o _listen 100 pelo 1026. Só que ele não saiu quando a linha foi '}', consequentemente ele seguiu viagem e sobrescreveu o _listen 1026 pelo 1027.
[ ] Arquivo vazio + _listen 100 num server valido
No main, no looping abaixo:
for (int i = 0; i < numbersOfServers; i++) {
servers[i].create(file);
}
Considerando o arquivo de configuração, serão dois servers, isso aí ta certo, daí o i = 0 seria para configurar o server da porta 1026 e o i = 1 seria para a porta 1027. Só que como não teve o break do '}' e a porta foi sobrescrita, o file ta vazio quando o getline for ler (tudo foi lido numa tacada só no looping anterior). Daí o compilador bate nessa linha de baixo, atendendo a condição e jogando a exceção:
if (_listen == 100)
throw Server::exception(RED "Error: listen is not set" RESET);
Tem um bug quando é um arquivo de configuração simples, tipo esse (arquivo basic.conf):
O que acontece é la na função create(). Ele configura o server corretamente trocando o _listen 100 pelo 1026. Só que ele não saiu quando a linha foi '}', consequentemente ele seguiu viagem e sobrescreveu o _listen 1026 pelo 1027.
No main, no looping abaixo:
Considerando o arquivo de configuração, serão dois servers, isso aí ta certo, daí o i = 0 seria para configurar o server da porta 1026 e o i = 1 seria para a porta 1027. Só que como não teve o break do '}' e a porta foi sobrescrita, o file ta vazio quando o getline for ler (tudo foi lido numa tacada só no looping anterior). Daí o compilador bate nessa linha de baixo, atendendo a condição e jogando a exceção: