diff --git a/install.sh b/install.sh index 9efd908..99daae3 100755 --- a/install.sh +++ b/install.sh @@ -745,11 +745,11 @@ features { "PINGFREQUENCY" = "120"; "CONNECTFREQUENCY" = "600"; - # Welcome messages - "MPATH" = "EOFCONFIG_PREFIX/etc/ircd.motd"; - "RPATH" = "EOFCONFIG_PREFIX/etc/remote.motd"; + # Welcome messages - toate în lib/ ca directorul principal + "MPATH" = "EOFCONFIG_PREFIX/lib/ircd.motd"; + "RPATH" = "EOFCONFIG_PREFIX/lib/remote.motd"; "PPATH" = "EOFCONFIG_PREFIX/var/ircd.pid"; - "CPATH" = "EOFCONFIG_PREFIX/etc/ircd.conf"; + "CPATH" = "EOFCONFIG_PREFIX/lib/ircd.conf"; # Stats visibility "HIS_STATS_u" = "FALSE"; @@ -938,7 +938,7 @@ main() { fi # Generare fișier de configurare - local conf_file="${PREFIX}/etc/ircd.conf" + local conf_file="${PREFIX}/lib/ircd.conf" if [ -z "$CONFIG_FILE" ]; then # Citire interactivă de parametri @@ -1122,6 +1122,9 @@ main() { HUB_CONFIG="no" fi + # Directorul pentru configurația funcțională - TREBUIE să fie în lib/, nu etc/ + conf_file="$PREFIX/lib/ircd.conf" + generate_config "$conf_file" "$server_name" "$server_desc" "$server_numeric" "$admin_location" "$admin_contact" "$vhost_ipv4" "$vhost_ipv6" "$network_name" "$oper_username" "$oper_hash" "$HUB_CONFIG" "$hub_name" "$hub_host" "$hub_port" "$hub_password" "$client_ports_list" "$SERVER_PORT" "$ssl_ports_list" if [ $? -ne 0 ]; then exit 1 @@ -1137,17 +1140,195 @@ main() { chmod 600 "$conf_file" log_success "Permisiuni setate pe configurare: 600" - # Creare directoare + # ====================================================================== + # REMEDIERE AUTOMATĂ - Aplicarea tuturor fix-urilor integrate + # ====================================================================== + log_info "Aplicare remedieri automate integrate..." + + # 1. Verifică și repară placeholder-urile EOFCONFIG rămas + if grep -q "EOFCONFIG" "$conf_file"; then + log_warn "Încă există placeholder-uri EOFCONFIG - le repar automat..." + + # Corectare EOFCONFIG_CLIENT_PORTS dacă există + if grep -q "EOFCONFIG_CLIENT_PORTS" "$conf_file"; then + CLIENT_PORTS_AUTOFIX='# Porturi publice pentru clienți - remediat automat +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_AUTOFIX" ' + /EOFCONFIG_CLIENT_PORTS/ {print replacement; next} + {print} + ' "$conf_file" > "$conf_file.tmp" && mv "$conf_file.tmp" "$conf_file" + log_success "EOFCONFIG_CLIENT_PORTS reparat automat" + fi + + # Corectare EOFCONFIG_SSL_PORTS dacă există + if grep -q "EOFCONFIG_SSL_PORTS" "$conf_file"; then + SSL_PORTS_AUTOFIX='# Porturi SSL/TLS pentru clienți - remediat automat +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_AUTOFIX" ' + /EOFCONFIG_SSL_PORTS/ {print replacement; next} + {print} + ' "$conf_file" > "$conf_file.tmp" && mv "$conf_file.tmp" "$conf_file" + log_success "EOFCONFIG_SSL_PORTS reparat automat" + fi + + # Orice alt placeholder EOFCONFIG + sed -i "s|EOFCONFIG_PREFIX|$PREFIX|g" "$conf_file" + sed -i "s|EOFCONFIG_NETWORK|$network_name|g" "$conf_file" + sed -i "s|\\.EOFCONFIG_NETWORK|.$network_name|g" "$conf_file" + sed -i "s|\\*\\.EOFCONFIG_NETWORK|*.$network_name|g" "$conf_file" + + log_success "Toate placeholder-urile EOFCONFIG reparate automat" + fi + + # 2. Asigură setările corecte de host hiding (HOST_HIDING_STYLE = 3) + if ! grep -q '"HOST_HIDING_STYLE" = "3"' "$conf_file"; then + log_warn "Corectez HOST_HIDING_STYLE pentru format hexadecimal..." + sed -i 's/"HOST_HIDING_STYLE" = "[^"]*"/"HOST_HIDING_STYLE" = "3"/' "$conf_file" + # Dacă nu există deloc, îl adaugă + if ! grep -q '"HOST_HIDING_STYLE"' "$conf_file"; then + sed -i '/"HOST_HIDING" = "TRUE"/a\ "HOST_HIDING_STYLE" = "3";' "$conf_file" + fi + log_success "HOST_HIDING_STYLE setat la 3 (format hexadecimal)" + fi + + # 3. Adaugă setări lipsă pentru host hiding + if ! grep -q '"HIDDEN_HOSTTYPE"' "$conf_file"; then + log_warn "Adaug HIDDEN_HOSTTYPE pentru format hexadecimal..." + sed -i '/"HIDDEN_IP" = /a\ "HIDDEN_HOSTTYPE" = "3";' "$conf_file" + log_success "HIDDEN_HOSTTYPE adăugat" + fi + + # 4. Asigură notificările WHOIS pentru operatori + if ! grep -q '"SPY_WHOIS" = "TRUE"' "$conf_file"; then + log_warn "Adaug setări pentru notificări WHOIS la operatori..." + sed -i '/"WHOIS_NOTICE" = "TRUE"/a\ "SPY_WHOIS" = "TRUE";\n "SNOMASK_OPERDEFAULT" = "1024";\n "SNOMASK_DEFAULT" = "1024";' "$conf_file" + log_success "Notificări WHOIS pentru operatori activate" + fi + + # 5. Test final sintaxă + log_info "Test final sintaxă configurație..." + if [ -x "$PREFIX/bin/ircd" ]; then + if "$PREFIX/bin/ircd" -c -f "$conf_file" > /dev/null 2>&1; then + log_success "✓ Configurația este validă și gata de utilizare!" + else + log_error "✗ Erori în configurația finală:" + "$PREFIX/bin/ircd" -c -f "$conf_file" 2>&1 | head -5 + log_warn "Se continuă instalarea - problemele pot fi remediate mai târziu" + fi + fi + + log_success "Remedieri automate aplicate cu succes!" + + # Creare directoare - ambele etc și lib pentru compatibilitate log_info "Creare structură de directoare..." mkdir -p "$PREFIX/log" mkdir -p "$PREFIX/etc" + mkdir -p "$PREFIX/lib" mkdir -p "$PREFIX/var" - # Creare fișiere MOTD - if [ ! -f "$PREFIX/etc/ircd.motd" ]; then - cat > "$PREFIX/etc/ircd.motd" << 'EOFMOTD' + # IMPORTANT: Copiază configurația și în etc/ pentru compatibilitate cu unele scripturi + cp "$conf_file" "$PREFIX/etc/ircd.conf" + log_success "Configurația copiată în ambele locații: etc/ și lib/" + + # Creare fișiere MOTD în ambele locații + if [ ! -f "$PREFIX/lib/ircd.motd" ]; then + cat > "$PREFIX/lib/ircd.motd" << 'EOFMOTD' ╔═══════════════════════════════════════╗ ║ Bine venit pe UnderChat IRCd! ║ + ║ ║ + ║ Server: %-30s ║ + ║ Versiune: 1.0.3 ║ + ║ ║ + ║ Pentru suport: #support ║ + ║ Website: https://underchat.org ║ + ╚═══════════════════════════════════════╝ + + 🌟 Caracteristici server: + • Host hiding pentru protecția utilizatorilor + • SSL/TLS encryption disponibil + • Anti-spam și anti-flood protection + • Canale cu diverse moduri și opțiuni + + 📋 Comenzi utile: + • /LIST - Listează canalele disponibile + • /WHOIS nick - Informații despre utilizatori + • /JOIN #canal - Intră într-un canal + • /HELP - Lista comenzilor disponibile + + 🔒 Acest server respectă politica de confidențialitate + și regulile rețelei UnderChat. Comportamentul abuziv + poate duce la restricții sau banuri. + + Distracție plăcută pe UnderChat! 🎉 +EOFMOTD + + # Copiază și în etc/ + cp "$PREFIX/lib/ircd.motd" "$PREFIX/etc/ircd.motd" + log_success "MOTD creat în lib/ și copiat în etc/" + fi ║ Versiune: Underchat Edition ║ ║ Data: 2026 ║ ╚═══════════════════════════════════════╝