From 44af427850e7716e20244765bc723a4b6a32c93e Mon Sep 17 00:00:00 2001 From: mihaiitdata Date: Fri, 13 Feb 2026 15:03:22 +0200 Subject: [PATCH] =?UTF-8?q?SOLU=C8=9AIE=20DEFINITIV=C4=82=20pentru=20EOFCO?= =?UTF-8?q?NFIG=5FCLIENT=5FPORTS=20-=20eroarea=20linia=20126=20PROBLEMA=20?= =?UTF-8?q?CRITIC=C4=82=20IDENTIFICAT=C4=82:=20-=20Config=20parse=20error?= =?UTF-8?q?=20in=20file=20ircd.conf=20on=20line=20126:=20syntax=20error=20?= =?UTF-8?q?-=20Cauza:=20EOFCONFIG=5FCLIENT=5FPORTS=20nu=20era=20=C3=AEnloc?= =?UTF-8?q?uit=20cu=20blocurile=20Port=20reale=20-=20Utilizatorul=20avea?= =?UTF-8?q?=20placeholder-ul=20literal=20=C3=AEn=20configura=C8=9Bie,=20ge?= =?UTF-8?q?ner=C3=A2nd=20eroare=20de=20sintax=C4=83=20SOLU=C8=9AII=20IMPLE?= =?UTF-8?q?MENTATE=20(toate=20=C3=AEn=20rom=C3=A2n=C4=83):=201.=20fix-eofc?= =?UTF-8?q?onfig-ports.sh=20-=20Script=20specializat=20NOU:=20=20=20=20?= =?UTF-8?q?=E2=9C=85=20Diagnostic=20specific=20pentru=20placeholder-urile?= =?UTF-8?q?=20EOFCONFIG=20problematice=20=20=20=20=E2=9C=85=20C=C4=83utare?= =?UTF-8?q?=20=C8=99i=20identificare=20EOFCONFIG=5FCLIENT=5FPORTS,=20EOFCO?= =?UTF-8?q?NFIG=5FSSL=5FPORTS=20=20=20=20=E2=9C=85=20Afi=C8=99are=20contex?= =?UTF-8?q?t=20eroare=20cu=20num=C4=83rul=20liniei=20=20=20=20=E2=9C=85=20?= =?UTF-8?q?=C3=8Enlocuire=20automat=C4=83=20cu=20blocuri=20Port=20complete?= =?UTF-8?q?=206660-6669,=207000=20=20=20=20=E2=9C=85=20=C3=8Enlocuire=20EO?= =?UTF-8?q?FCONFIG=5FSSL=5FPORTS=20cu=20blocuri=20SSL=206697,=209999=20=20?= =?UTF-8?q?=20=20=E2=9C=85=20Test=20final=20sintax=C4=83=20dup=C4=83=20rep?= =?UTF-8?q?arare=20=20=20=20=E2=9C=85=20200+=20linii=20de=20cod=20speciali?= =?UTF-8?q?zat=20pentru=20aceast=C4=83=20problem=C4=83=202.=20fix-config.s?= =?UTF-8?q?h=20-=20Extins=20cu=20reparare=20EOFCONFIG:=20=20=20=20?= =?UTF-8?q?=E2=9C=85=20Detectare=20=C8=99i=20=C3=AEnlocuire=20EOFCONFIG=5F?= =?UTF-8?q?CLIENT=5FPORTS=20cu=20blocuri=20Port=20=20=20=20=E2=9C=85=20Det?= =?UTF-8?q?ectare=20=C8=99i=20=C3=AEnlocuire=20EOFCONFIG=5FSSL=5FPORTS=20c?= =?UTF-8?q?u=20blocuri=20SSL=20=20=20=20=E2=9C=85=20Logica=20specializat?= =?UTF-8?q?=C4=83=20awk=20pentru=20=C3=AEnlocuirea=20placeholder-urilor=20?= =?UTF-8?q?=20=20=20=E2=9C=85=20Integrare=20cu=20repararea=20altor=20probl?= =?UTF-8?q?eme=20de=20configura=C8=9Bie=20=20=20=20=E2=9C=85=20Backup=20au?= =?UTF-8?q?tomat=20=C3=AEnainte=20de=20modific=C4=83ri=203.=20INSTALL=5FAU?= =?UTF-8?q?TO.md=20-=20Documenta=C8=9Bie=20detaliat=C4=83:=20=20=20=20?= =?UTF-8?q?=E2=9C=85=20Sec=C8=9Biune=20specific=C4=83=20'Porturile=20publi?= =?UTF-8?q?ce=20nu=20se=20genereaz=C4=83=20corect'=20=20=20=20=E2=9C=85=20?= =?UTF-8?q?Eroarea=20exact=C4=83:=20'Config=20parse=20error=20line=20126:?= =?UTF-8?q?=20syntax=20error'=20=20=20=20=E2=9C=85=20Comenzi=20pentru=20di?= =?UTF-8?q?agnostic:=20grep=20-n=20EOFCONFIG=5FCLIENT=5FPORTS=20=20=20=20?= =?UTF-8?q?=E2=9C=85=20Solu=C8=9Bia=20automat=C4=83=20cu=20exemple=20de=20?= =?UTF-8?q?blocuri=20Port=20generate=20=20=20=20=E2=9C=85=20Verificare=20f?= =?UTF-8?q?inal=C4=83=20cu=20comenzi=20exacte=20REZULTAT=20FINAL:=20EOFCON?= =?UTF-8?q?FIG=5FCLIENT=5FPORTS=20=E2=86=92=2011=20blocuri=20Port=20(6660-?= =?UTF-8?q?6669,=207000)=20EOFCONFIG=5FSSL=5FPORTS=20=E2=86=92=202=20blocu?= =?UTF-8?q?ri=20SSL=20(6697,=209999)=20EOFCONFIG=5FNETWORK=20=E2=86=92=20u?= =?UTF-8?q?nderchat.org=20EOFCONFIG=5FPREFIX=20=E2=86=92=20calea=20PREFIX?= =?UTF-8?q?=20corect=C4=83=20UTILIZARE=20PENTRU=20UTILIZATOR:=20./fix-eofc?= =?UTF-8?q?onfig-ports.sh=20~/ircd=20-=20diagnostic=20=C8=99i=20reparare?= =?UTF-8?q?=20specializat=C4=83=20./fix-config.sh=20~/ircd=20-=20reparare?= =?UTF-8?q?=20general=C4=83=20inclusiv=20EOFCONFIG=20Ambele=20scripturi=20?= =?UTF-8?q?includ=20test=20sintax=C4=83=20final=20pentru=20confirmare=20TE?= =?UTF-8?q?STARE=20COMPLET=C4=82:=20-=20Verificat=20sintaxa=20tuturor=20sc?= =?UTF-8?q?ripturilor=20=E2=9C=85=20-=20Validat=20logica=20de=20=C3=AEnloc?= =?UTF-8?q?uire=20cu=20awk=20=E2=9C=85=20-=20Confirmat=20c=C4=83=20placeho?= =?UTF-8?q?lders-urile=20se=20=C3=AEnlocuiesc=20corect=20=E2=9C=85=20-=20D?= =?UTF-8?q?ocumentat=20procesul=20complet=20pentru=20utilizatori=20?= =?UTF-8?q?=E2=9C=85=20Problema=20cu=20linia=20126=20=C8=99i=20EOFCONFIG?= =?UTF-8?q?=5FCLIENT=5FPORTS=20este=20complet=20rezolvat=C4=83!?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- INSTALL_AUTO.md | 54 +++++++-- fix-config.sh | 93 ++++++++++++++++ fix-eofconfig-ports.sh | 241 +++++++++++++++++++++++++++++++++++++++++ 3 files changed, 376 insertions(+), 12 deletions(-) create mode 100644 fix-eofconfig-ports.sh diff --git a/INSTALL_AUTO.md b/INSTALL_AUTO.md index e83001f..826ba09 100644 --- a/INSTALL_AUTO.md +++ b/INSTALL_AUTO.md @@ -407,24 +407,54 @@ Class { **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 -# Porturile standard generate automat în admin.sh: -# 6660, 6661, 6662, 6663, 6664, 6665, 6666, 6667, 6668, 6669, 7000 -# Plus 6697 pentru SSL +# DIAGNOSTIC RAPID - script specializat pentru placeholder-uri +./fix-eofconfig-ports.sh ~/ircd -# Pentru regenerare rapidă: -./admin.sh → opțiunea 1) Creare config standard - -# Pentru reparare configurație existentă: +# SAU din scriptul general ./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**: -1. **Template admin.sh** - acum include toate porturile 6660-6669, 7000, 6697 -2. **Placeholder EOFCONFIG_NETWORK** - acum se înlocuiește corect -3. **Generare blocuri Port** - logica din install.sh funcționează corect +**Cauza**: Placeholder-ul `EOFCONFIG_CLIENT_PORTS` nu a fost înlocuit cu blocurile Port reale + +**Soluția automată aplicată:** +```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 diff --git a/fix-config.sh b/fix-config.sh index b937bb0..7426d29 100644 --- a/fix-config.sh +++ b/fix-config.sh @@ -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" +# 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 log_info "Verificare și corectare host hiding..." diff --git a/fix-eofconfig-ports.sh b/fix-eofconfig-ports.sh new file mode 100644 index 0000000..2de395a --- /dev/null +++ b/fix-eofconfig-ports.sh @@ -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