SOLUȚIE DEFINITIVĂ pentru EOFCONFIG_CLIENT_PORTS - eroarea linia 126

PROBLEMA CRITICĂ IDENTIFICATĂ:
- Config parse error in file ircd.conf on line 126: syntax error
- Cauza: EOFCONFIG_CLIENT_PORTS nu era înlocuit cu blocurile Port reale
- Utilizatorul avea placeholder-ul literal în configurație, generând eroare de sintaxă
SOLUȚII IMPLEMENTATE (toate în română):
1. fix-eofconfig-ports.sh - Script specializat NOU:
    Diagnostic specific pentru placeholder-urile EOFCONFIG problematice
    Căutare și identificare EOFCONFIG_CLIENT_PORTS, EOFCONFIG_SSL_PORTS
    Afișare context eroare cu numărul liniei
    Înlocuire automată cu blocuri Port complete 6660-6669, 7000
    Înlocuire EOFCONFIG_SSL_PORTS cu blocuri SSL 6697, 9999
    Test final sintaxă după reparare
    200+ linii de cod specializat pentru această problemă
2. fix-config.sh - Extins cu reparare EOFCONFIG:
    Detectare și înlocuire EOFCONFIG_CLIENT_PORTS cu blocuri Port
    Detectare și înlocuire EOFCONFIG_SSL_PORTS cu blocuri SSL
    Logica specializată awk pentru înlocuirea placeholder-urilor
    Integrare cu repararea altor probleme de configurație
    Backup automat înainte de modificări
3. INSTALL_AUTO.md - Documentație detaliată:
    Secțiune specifică 'Porturile publice nu se generează corect'
    Eroarea exactă: 'Config parse error line 126: syntax error'
    Comenzi pentru diagnostic: grep -n EOFCONFIG_CLIENT_PORTS
    Soluția automată cu exemple de blocuri Port generate
    Verificare finală cu comenzi exacte
REZULTAT FINAL:
EOFCONFIG_CLIENT_PORTS → 11 blocuri Port (6660-6669, 7000)
EOFCONFIG_SSL_PORTS → 2 blocuri SSL (6697, 9999)
EOFCONFIG_NETWORK → underchat.org
EOFCONFIG_PREFIX → calea PREFIX corectă
UTILIZARE PENTRU UTILIZATOR:
./fix-eofconfig-ports.sh ~/ircd - diagnostic și reparare specializată
./fix-config.sh ~/ircd - reparare generală inclusiv EOFCONFIG
Ambele scripturi includ test sintaxă final pentru confirmare
TESTARE COMPLETĂ:
- Verificat sintaxa tuturor scripturilor 
- Validat logica de înlocuire cu awk 
- Confirmat că placeholders-urile se înlocuiesc corect 
- Documentat procesul complet pentru utilizatori 
Problema cu linia 126 și EOFCONFIG_CLIENT_PORTS este complet rezolvată!
This commit is contained in:
mihaiitdata 2026-02-13 15:03:22 +02:00
parent a11e82421f
commit 44af427850
3 changed files with 376 additions and 12 deletions

View File

@ -407,24 +407,54 @@ Class {
**Simptome**: În ircd.conf pe linia 126 apare `EOFCONFIG_CLIENT_PORTS` în loc de blocurile Port **Simptome**: În ircd.conf pe linia 126 apare `EOFCONFIG_CLIENT_PORTS` în loc de blocurile Port
**Soluția este acum integrată în toate scripturile:** **Eroarea exactă**: `Config parse error in file ircd.conf on line 126: syntax error`
```bash ```bash
# Porturile standard generate automat în admin.sh: # DIAGNOSTIC RAPID - script specializat pentru placeholder-uri
# 6660, 6661, 6662, 6663, 6664, 6665, 6666, 6667, 6668, 6669, 7000 ./fix-eofconfig-ports.sh ~/ircd
# Plus 6697 pentru SSL
# Pentru regenerare rapidă: # SAU din scriptul general
./admin.sh → opțiunea 1) Creare config standard
# Pentru reparare configurație existentă:
./fix-config.sh ~/ircd ./fix-config.sh ~/ircd
# SAU verifică manual linia problemă:
grep -n "EOFCONFIG_CLIENT_PORTS" ~/ircd/etc/ircd.conf
grep -n "EOFCONFIG_CLIENT_PORTS" ~/ircd/lib/ircd.conf
``` ```
**Cauze rezolvate**: **Cauza**: Placeholder-ul `EOFCONFIG_CLIENT_PORTS` nu a fost înlocuit cu blocurile Port reale
1. **Template admin.sh** - acum include toate porturile 6660-6669, 7000, 6697
2. **Placeholder EOFCONFIG_NETWORK** - acum se înlocuiește corect **Soluția automată aplicată:**
3. **Generare blocuri Port** - logica din install.sh funcționează corect ```bash
# EOFCONFIG_CLIENT_PORTS devine:
Port {
vhost = "127.0.0.1" 6660;
hidden = yes;
};
Port {
vhost = "127.0.0.1" 6661;
hidden = yes;
};
# ... până la 6669, 7000
# EOFCONFIG_SSL_PORTS devine:
Port {
vhost = "127.0.0.1" 6697;
ssl = yes;
hidden = yes;
};
```
**Verificare finală**:
```bash
# După aplicarea reparației:
~/ircd/bin/ircd -c -f ~/ircd/etc/ircd.conf
# Ar trebui să nu mai dea erori de sintaxă
# Verifică că nu mai sunt placeholder-uri:
grep -i EOFCONFIG ~/ircd/etc/ircd.conf
# Nu ar trebui să găsească nimic
```
### "Permission denied" la ./configure ### "Permission denied" la ./configure

View File

@ -188,6 +188,99 @@ sed -i "s|EOFCONFIG_NETWORK|underchat.org|g" "$CONFIG_ETC"
sed -i "s|\\.EOFCONFIG_NETWORK|.underchat.org|g" "$CONFIG_ETC" sed -i "s|\\.EOFCONFIG_NETWORK|.underchat.org|g" "$CONFIG_ETC"
sed -i "s|\\*\\.EOFCONFIG_NETWORK|*.underchat.org|g" "$CONFIG_ETC" sed -i "s|\\*\\.EOFCONFIG_NETWORK|*.underchat.org|g" "$CONFIG_ETC"
# Corectare specială pentru EOFCONFIG_CLIENT_PORTS
if grep -q "EOFCONFIG_CLIENT_PORTS" "$CONFIG_ETC"; then
log_warn "EOFCONFIG_CLIENT_PORTS găsit - îl înlocuiesc cu blocuri Port..."
CLIENT_PORTS_BLOCK='# Porturi publice pentru clienți
Port {
vhost = "127.0.0.1" 6660;
hidden = yes;
};
Port {
vhost = "127.0.0.1" 6661;
hidden = yes;
};
Port {
vhost = "127.0.0.1" 6662;
hidden = yes;
};
Port {
vhost = "127.0.0.1" 6663;
hidden = yes;
};
Port {
vhost = "127.0.0.1" 6664;
hidden = yes;
};
Port {
vhost = "127.0.0.1" 6665;
hidden = yes;
};
Port {
vhost = "127.0.0.1" 6666;
hidden = yes;
};
Port {
vhost = "127.0.0.1" 6667;
hidden = yes;
};
Port {
vhost = "127.0.0.1" 6668;
hidden = yes;
};
Port {
vhost = "127.0.0.1" 6669;
hidden = yes;
};
Port {
vhost = "127.0.0.1" 7000;
hidden = yes;
};'
awk -v replacement="$CLIENT_PORTS_BLOCK" '
/EOFCONFIG_CLIENT_PORTS/ {print replacement; next}
{print}
' "$CONFIG_ETC" > "$CONFIG_ETC.tmp" && mv "$CONFIG_ETC.tmp" "$CONFIG_ETC"
log_success "EOFCONFIG_CLIENT_PORTS înlocuit cu blocurile Port"
fi
# Corectare specială pentru EOFCONFIG_SSL_PORTS
if grep -q "EOFCONFIG_SSL_PORTS" "$CONFIG_ETC"; then
log_warn "EOFCONFIG_SSL_PORTS găsit - îl înlocuiesc cu blocuri SSL..."
SSL_PORTS_BLOCK='# Porturi SSL/TLS pentru clienți
Port {
vhost = "127.0.0.1" 6697;
ssl = yes;
hidden = yes;
};
Port {
vhost = "127.0.0.1" 9999;
ssl = yes;
hidden = yes;
};'
awk -v replacement="$SSL_PORTS_BLOCK" '
/EOFCONFIG_SSL_PORTS/ {print replacement; next}
{print}
' "$CONFIG_ETC" > "$CONFIG_ETC.tmp" && mv "$CONFIG_ETC.tmp" "$CONFIG_ETC"
log_success "EOFCONFIG_SSL_PORTS înlocuit cu blocurile SSL"
fi
# 4. Verifică și corectează setările de host hiding # 4. Verifică și corectează setările de host hiding
log_info "Verificare și corectare host hiding..." log_info "Verificare și corectare host hiding..."

241
fix-eofconfig-ports.sh Normal file
View File

@ -0,0 +1,241 @@
#!/bin/bash
#
# Script specializat pentru repararea placeholder-urilor EOFCONFIG_CLIENT_PORTS în ircd.conf
# Limba: Română
#
# Culori
ROSU='\033[0;31m'
VERDE='\033[0;32m'
GALBEN='\033[1;33m'
ALBASTRU='\033[0;34m'
NC='\033[0m'
log_info() { echo -e "${ALBASTRU}[INFO]${NC} $1"; }
log_success() { echo -e "${VERDE}[SUCCES]${NC} $1"; }
log_warn() { echo -e "${GALBEN}[AVERTIZARE]${NC} $1"; }
log_error() { echo -e "${ROSU}[EROARE]${NC} $1"; }
echo -e "${ALBASTRU}"
echo "════════════════════════════════════════"
echo " Reparare EOFCONFIG_CLIENT_PORTS"
echo "════════════════════════════════════════"
echo -e "${NC}"
# Detectează PREFIX
if [ -n "$1" ]; then
PREFIX="$1"
elif [ -d "$HOME/ircd" ]; then
PREFIX="$HOME/ircd"
elif [ -d "/home/ircd/ircd" ]; then
PREFIX="/home/ircd/ircd"
else
log_error "Nu pot detecta directorul IRCd!"
echo "Utilizare: $0 [PREFIX_PATH]"
exit 1
fi
CONFIG_FILE="$PREFIX/etc/ircd.conf"
if [ -f "$PREFIX/lib/ircd.conf" ]; then
CONFIG_FILE="$PREFIX/lib/ircd.conf"
fi
log_info "Folosesc PREFIX: $PREFIX"
log_info "Config file: $CONFIG_FILE"
if [ ! -f "$CONFIG_FILE" ]; then
log_error "Fișierul de configurare nu există: $CONFIG_FILE"
exit 1
fi
echo ""
echo -e "${GALBEN}═══ DIAGNOSTIC PLACEHOLDER EOFCONFIG ═══${NC}"
# Verifică placeholder-urile problematice
echo ""
log_info "Căutare placeholder-uri EOFCONFIG..."
if grep -q "EOFCONFIG_CLIENT_PORTS" "$CONFIG_FILE"; then
log_error "EOFCONFIG_CLIENT_PORTS găsit - acesta cauzează eroarea de sintaxă!"
PROBLEM_LINE=$(grep -n "EOFCONFIG_CLIENT_PORTS" "$CONFIG_FILE" | cut -d: -f1)
log_warn "Pe linia: $PROBLEM_LINE"
fi
if grep -q "EOFCONFIG_SSL_PORTS" "$CONFIG_FILE"; then
log_warn "EOFCONFIG_SSL_PORTS găsit - și acesta trebuie înlocuit"
fi
if grep -q "EOFCONFIG_NETWORK" "$CONFIG_FILE"; then
log_warn "EOFCONFIG_NETWORK găsit - și acesta trebuie înlocuit"
fi
# Afișează contextul erorii
echo ""
log_info "Context linia problematică:"
echo -e "${GALBEN}────────────────────────────────────────${NC}"
grep -n -A3 -B3 "EOFCONFIG_CLIENT_PORTS" "$CONFIG_FILE" 2>/dev/null || echo "Nu găsesc EOFCONFIG_CLIENT_PORTS"
echo -e "${GALBEN}────────────────────────────────────────${NC}"
# Întrebă dacă să aplice reparația
echo ""
echo -e "${GALBEN}Vrei să înlocuiesc toate placeholder-urile EOFCONFIG cu valori corecte? [y/N]:${NC}"
read -r apply_fixes
if [[ "$apply_fixes" =~ ^[Yy]$ ]]; then
echo ""
echo -e "${VERDE}═══ APLICARE REPARAȚII PLACEHOLDER ═══${NC}"
# Backup
cp "$CONFIG_FILE" "$CONFIG_FILE.backup.eofconfig.$(date +%s)"
log_success "Backup creat: $CONFIG_FILE.backup.eofconfig.*"
# 1. Înlocuiește EOFCONFIG_CLIENT_PORTS cu porturile standard
log_info "Înlocuiesc EOFCONFIG_CLIENT_PORTS cu porturile client standard..."
CLIENT_PORTS_BLOCK='# Porturi publice pentru clienți
Port {
vhost = "127.0.0.1" 6660;
hidden = yes;
};
Port {
vhost = "127.0.0.1" 6661;
hidden = yes;
};
Port {
vhost = "127.0.0.1" 6662;
hidden = yes;
};
Port {
vhost = "127.0.0.1" 6663;
hidden = yes;
};
Port {
vhost = "127.0.0.1" 6664;
hidden = yes;
};
Port {
vhost = "127.0.0.1" 6665;
hidden = yes;
};
Port {
vhost = "127.0.0.1" 6666;
hidden = yes;
};
Port {
vhost = "127.0.0.1" 6667;
hidden = yes;
};
Port {
vhost = "127.0.0.1" 6668;
hidden = yes;
};
Port {
vhost = "127.0.0.1" 6669;
hidden = yes;
};
Port {
vhost = "127.0.0.1" 7000;
hidden = yes;
};'
# Înlocuiește placeholder-ul cu blocul de porturi
if grep -q "EOFCONFIG_CLIENT_PORTS" "$CONFIG_FILE"; then
# Creează un fișier temporar cu înlocuirea
awk -v replacement="$CLIENT_PORTS_BLOCK" '
/EOFCONFIG_CLIENT_PORTS/ {print replacement; next}
{print}
' "$CONFIG_FILE" > "$CONFIG_FILE.tmp" && mv "$CONFIG_FILE.tmp" "$CONFIG_FILE"
log_success "EOFCONFIG_CLIENT_PORTS înlocuit cu blocurile Port"
fi
# 2. Înlocuiește EOFCONFIG_SSL_PORTS cu porturile SSL
log_info "Înlocuiesc EOFCONFIG_SSL_PORTS cu porturile SSL..."
SSL_PORTS_BLOCK='# Porturi SSL/TLS pentru clienți
Port {
vhost = "127.0.0.1" 6697;
ssl = yes;
hidden = yes;
};
Port {
vhost = "127.0.0.1" 9999;
ssl = yes;
hidden = yes;
};'
if grep -q "EOFCONFIG_SSL_PORTS" "$CONFIG_FILE"; then
awk -v replacement="$SSL_PORTS_BLOCK" '
/EOFCONFIG_SSL_PORTS/ {print replacement; next}
{print}
' "$CONFIG_FILE" > "$CONFIG_FILE.tmp" && mv "$CONFIG_FILE.tmp" "$CONFIG_FILE"
log_success "EOFCONFIG_SSL_PORTS înlocuit cu blocurile SSL"
fi
# 3. Înlocuiește alte placeholder-uri comune
log_info "Înlocuiesc alte placeholder-uri EOFCONFIG..."
sed -i "s|EOFCONFIG_PREFIX|$PREFIX|g" "$CONFIG_FILE"
sed -i "s|EOFCONFIG_NETWORK|underchat.org|g" "$CONFIG_FILE"
sed -i "s|\\.EOFCONFIG_NETWORK|.underchat.org|g" "$CONFIG_FILE"
sed -i "s|\\*\\.EOFCONFIG_NETWORK|*.underchat.org|g" "$CONFIG_FILE"
log_success "Alte placeholder-uri EOFCONFIG înlocuite"
echo ""
echo -e "${VERDE}═══ TEST FINAL ═══${NC}"
# Verifică dacă mai există placeholder-uri
if grep -q "EOFCONFIG" "$CONFIG_FILE"; then
log_warn "Încă mai există placeholder-uri EOFCONFIG:"
grep -n "EOFCONFIG" "$CONFIG_FILE"
else
log_success "✓ Toate placeholder-urile EOFCONFIG au fost înlocuite!"
fi
# Test sintaxă
if [ -x "$PREFIX/bin/ircd" ]; then
log_info "Test sintaxă configurație..."
if "$PREFIX/bin/ircd" -c -f "$CONFIG_FILE" > /dev/null 2>&1; then
log_success "✓ Sintaxă configurație validă!"
else
log_error "✗ Încă mai sunt erori în configurație:"
"$PREFIX/bin/ircd" -c -f "$CONFIG_FILE" 2>&1 | head -10
fi
fi
echo ""
echo -e "${VERDE}════════════════════════════════════════${NC}"
echo -e "${VERDE} PLACEHOLDER-URI EOFCONFIG REPARATE!${NC}"
echo -e "${VERDE}════════════════════════════════════════${NC}"
echo ""
echo -e "${GALBEN}Rezultat:${NC}"
echo "- EOFCONFIG_CLIENT_PORTS → Blocuri Port 6660-6669, 7000"
echo "- EOFCONFIG_SSL_PORTS → Blocuri SSL Port 6697, 9999"
echo "- EOFCONFIG_NETWORK → underchat.org"
echo "- EOFCONFIG_PREFIX → $PREFIX"
echo ""
echo -e "${GALBEN}Pentru a testa:${NC}"
echo "1. $PREFIX/bin/ircd -c -f $CONFIG_FILE"
echo "2. $PREFIX/bin/ircd -f $CONFIG_FILE"
else
echo ""
log_info "Reparație anulată. Problema va persista."
echo ""
echo -e "${GALBEN}Pentru reparare manuală:${NC}"
echo "1. Editează $CONFIG_FILE"
echo "2. Înlocuiește 'EOFCONFIG_CLIENT_PORTS' cu blocuri Port"
echo "3. Înlocuiește 'EOFCONFIG_SSL_PORTS' cu blocuri SSL"
echo "4. Înlocuiește 'EOFCONFIG_NETWORK' cu 'underchat.org'"
fi