Imbunatatiri installer si rezolvare probleme configurare

- Adaugat optiunea --version pentru setarea versiunii in PATCHLEVEL
- Rezolvat eroarea regex bash cu grep/sed pentru compatibilitate
- Adaugat CPATH pentru calea corecta a configului (rezolva problema cu 'No such file')
- Imbunatatit HOST_HIDING cu HOST_HIDING_STYLE pentru ascunderea completa
- Modificat clasa Opers cu usermode +Wx pentru notificari WHOIS
- Adaugat WHOIS_NOTICE pentru notificari la operatori
- Actualizat documentatia cu noua optiune --version
Rezolva problemele:
1. Config parse error (CPATH setat corect)
2. Hostname-ul nu se ascunde (HOST_HIDING_STYLE)
3. Operatorii nu primesc +W (usermode +Wx in clasa Opers)
4. Lipsa notificari WHOIS (WHOIS_NOTICE activat)
This commit is contained in:
mihaiitdata 2026-02-13 14:09:43 +02:00
parent 2fdc9ad105
commit 7ac88d3f80
2 changed files with 70 additions and 16 deletions

View File

@ -80,7 +80,10 @@ Script-ul interactiv te va ghida prin:
# Dezactivare SSL/TLS # Dezactivare SSL/TLS
./install.sh --no-ssl ./install.sh --no-ssl
# Combinație de opțiuni # Setare versiune la build
./install.sh --version 1.0.3
# Combinatie de optiuni
./install.sh --prefix /opt/ircd --maxcon 16384 --debug ./install.sh --prefix /opt/ircd --maxcon 16384 --debug
``` ```
@ -90,12 +93,13 @@ Script-ul interactiv te va ghida prin:
Usage: ./install.sh [OPTIONS] Usage: ./install.sh [OPTIONS]
OPTIONS: OPTIONS:
-h, --help Afișează mesajul de ajutor -h, --help Afiseaza mesajul de ajutor
-p, --prefix PATH Calea de instalare (implicit: $HOME/ircd) -p, --prefix PATH Calea de instalare (implicit: $HOME/ircd)
-m, --maxcon NUM Numărul maxim de conexiuni (implicit: 4096) -m, --maxcon NUM Numarul maxim de conexiuni (implicit: 4096)
-d, --debug Activează modul de debug -d, --debug Activeaza modul de debug
-s, --no-ssl Dezactivează suportul SSL/TLS -s, --no-ssl Dezactiveaza suportul SSL/TLS
-c, --config FILE Fișier de configurare inițial -c, --config FILE Fisier de configurare initial
-V, --version VER Seteaza versiunea in PATCHLEVEL (ex: 1.0.3)
``` ```
## 📁 Structura Directoarelor Post-Instalare ## 📁 Structura Directoarelor Post-Instalare

View File

@ -20,6 +20,7 @@ ENABLE_SSL=1
MAXCON_SET=0 MAXCON_SET=0
SERVER_PORT=4400 SERVER_PORT=4400
SSL_PORTS_DEFAULT="6697" SSL_PORTS_DEFAULT="6697"
IRCD_VERSION=""
# Validare numar pozitiv (doar cifre) # Validare numar pozitiv (doar cifre)
is_positive_int() { is_positive_int() {
@ -137,22 +138,24 @@ expand_ports() {
# Funcția de afișare a ajutorului # Funcția de afișare a ajutorului
show_help() { show_help() {
cat << EOF cat << EOF
${ALBASTRU}Script de instalare automată pentru UnderChat IRCd${NC} ${ALBASTRU}Script de instalare automata pentru UnderChat IRCd${NC}
Utilizare: ./install.sh [OPȚIUNI] Utilizare: ./install.sh [OPTIUNI]
${GALBEN}OPȚIUNI:${NC} ${GALBEN}OPTIUNI:${NC}
-h, --help Afișează acest mesaj de ajutor -h, --help Afiseaza acest mesaj de ajutor
-p, --prefix PATH Calea de instalare (implicit: \$HOME/ircd) -p, --prefix PATH Calea de instalare (implicit: \$HOME/ircd)
-m, --maxcon NUM Numărul maxim de conexiuni (implicit: 4096) -m, --maxcon NUM Numarul maxim de conexiuni (implicit: 4096)
-d, --debug Activează modul de debug -d, --debug Activeaza modul de debug
-s, --no-ssl Dezactivează suportul SSL/TLS -s, --no-ssl Dezactiveaza suportul SSL/TLS
-c, --config FILE Fișier de configurare inițial -c, --config FILE Fisier de configurare initial
-V, --version VER Seteaza versiunea in PATCHLEVEL (ex: 1.0.3)
${GALBEN}EXEMPLE:${NC} ${GALBEN}EXEMPLE:${NC}
./install.sh ./install.sh
./install.sh --prefix /opt/ircd --maxcon 8192 ./install.sh --prefix /opt/ircd --maxcon 8192
./install.sh --debug --config myconfig.conf ./install.sh --debug --config myconfig.conf
./install.sh --version 1.0.3
EOF EOF
} }
@ -332,6 +335,41 @@ fix_config_guess() {
return 0 return 0
} }
# Funcția de setare versiune in PATCHLEVEL
set_patchlevel_version() {
local version="$1"
local patchlevel_file="./include/patchlevel.h"
if [ -z "$version" ]; then
return 0
fi
if [ ! -f "$patchlevel_file" ]; then
log_warn "Fisierul $patchlevel_file nu exista, sar peste setarea versiunii"
return 0
fi
local current
current=$(grep -E '^#define PATCHLEVEL ' "$patchlevel_file" | sed -E 's/^#define PATCHLEVEL "([^"]+)".*/\1/')
if [ -z "$current" ]; then
log_warn "Nu pot determina PATCHLEVEL curent, sar peste setarea versiunii"
return 0
fi
local new_patchlevel
if echo "$current" | grep -q '(.*)'; then
# Extract prefix before parentheses
local prefix=$(echo "$current" | sed -E 's/^(.*)\([^)]*\)$/\1/')
new_patchlevel="${prefix}(${version})"
else
new_patchlevel="UnderChat(${version})"
fi
sed -i "s|^#define PATCHLEVEL \".*\"|#define PATCHLEVEL \"$new_patchlevel\"|" "$patchlevel_file"
log_success "Versiune setata in PATCHLEVEL: $new_patchlevel"
}
# Funcția de configurare # Funcția de configurare
configure_ircd() { configure_ircd() {
log_info "Configurare UnderChat IRCd..." log_info "Configurare UnderChat IRCd..."
@ -573,7 +611,7 @@ Class {
show_invis = yes; show_invis = yes;
see_chan = yes; see_chan = yes;
list_chan = yes; list_chan = yes;
usermode = "+W"; usermode = "+Wx";
remove = yes; remove = yes;
}; };
@ -686,6 +724,7 @@ features {
"HOST_HIDING" = "TRUE"; "HOST_HIDING" = "TRUE";
"HIDDEN_HOST" = "users.EOFCONFIG_NETWORK"; "HIDDEN_HOST" = "users.EOFCONFIG_NETWORK";
"HIDDEN_IP" = "127.0.0.1"; "HIDDEN_IP" = "127.0.0.1";
"HOST_HIDING_STYLE" = "1";
# Channels # Channels
"MAXCHANNELSPERUSER" = "60"; "MAXCHANNELSPERUSER" = "60";
@ -707,6 +746,7 @@ features {
"MPATH" = "EOFCONFIG_PREFIX/etc/ircd.motd"; "MPATH" = "EOFCONFIG_PREFIX/etc/ircd.motd";
"RPATH" = "EOFCONFIG_PREFIX/etc/remote.motd"; "RPATH" = "EOFCONFIG_PREFIX/etc/remote.motd";
"PPATH" = "EOFCONFIG_PREFIX/var/ircd.pid"; "PPATH" = "EOFCONFIG_PREFIX/var/ircd.pid";
"CPATH" = "EOFCONFIG_PREFIX/etc/ircd.conf";
# Stats visibility # Stats visibility
"HIS_STATS_u" = "FALSE"; "HIS_STATS_u" = "FALSE";
@ -746,6 +786,9 @@ features {
# CTCP versioning # CTCP versioning
"CTCP_VERSIONING" = "FALSE"; "CTCP_VERSIONING" = "FALSE";
# WHOIS notifications for operators
"WHOIS_NOTICE" = "TRUE";
}; };
EOFCONFIG EOFCONFIG
@ -826,8 +869,12 @@ main() {
CONFIG_FILE="$2" CONFIG_FILE="$2"
shift 2 shift 2
;; ;;
-V|--version)
IRCD_VERSION="$2"
shift 2
;;
*) *)
log_error "Opțiune necunoscută: $1" log_error "Optiune necunoscuta: $1"
show_help show_help
exit 1 exit 1
;; ;;
@ -862,6 +909,9 @@ main() {
exit 1 exit 1
fi fi
# Setare versiune (optional)
set_patchlevel_version "$IRCD_VERSION"
# Configurare # Configurare
configure_ircd configure_ircd
if [ $? -ne 0 ]; then if [ $? -ne 0 ]; then