# REBRAND v1.3.0 - UnderChat în loc de Nefarious

## 🎨 REBRANDING COMPLET

**Data:** 14 Februarie 2026  
**Versiune:** v1.3.0  
**Severitate:** 📝 Cosmetică (dar necesită recompilare)

---

## 🐛 PROBLEMA RAPORTATĂ

**Utilizator a observat:**
```
[14:39] * Joins: iRO (iRO@Nefarious-2F378ED1.eushells.ro)
```

**Problema:** Prefixul "Nefarious-" apare în hostname-urile ascunse (cloaked hostnames).

**Cerință:** Schimbarea prefixului de la "Nefarious-" la "UnderChat-" pentru branding consistent.

---

## 🔍 ANALIZĂ TEHNICĂ

### Unde este definit prefixul?

Hostname-urile ascunse (host hiding/cloaking) sunt generate în codul sursă folosind mai multe setări din `ircd/ircd_features.c`:

#### **1. HOST_HIDING_PREFIX** (Linia 753)
```c
F_S(HOST_HIDING_PREFIX, 0, "Nefarious", 0),
```
**Funcție:** Prefixul folosit în algoritmul de host hiding  
**Format rezultat:** `Nefarious-HASH.domain.tld`

#### **2. HIDDEN_HOST** (Linia 538)
```c
F_S(HIDDEN_HOST, FEAT_CASE, "Users.Nefarious", 0),
```
**Funcție:** Hostname ascuns implicit pentru utilizatori normali  
**Format rezultat:** `Users.Nefarious`

#### **3. HIDDEN_OPERHOST** (Linia 751)
```c
F_S(HIDDEN_OPERHOST, FEAT_CASE, "Staff.Nefarious", 0),
```
**Funcție:** Hostname ascuns pentru operatori  
**Format rezultat:** `Staff.Nefarious`

#### **4. HIS_SERVERNAME** (Linia 635)
```c
F_S(HIS_SERVERNAME, 0, "*.Nefarious", feature_notify_servername),
```
**Funcție:** Nume server ascuns în WHOIS/WHO pentru protecție topologie  
**Format rezultat:** `*.Nefarious`

#### **5. NETWORK** (Linia 640)
```c
F_S(NETWORK, 0, "Nefarious", set_isupport_network),
```
**Funcție:** Numele rețelei IRC (trimis în ISUPPORT)  
**Format rezultat:** `:server 005 user NETWORK=Nefarious`

---

## ✅ MODIFICĂRI IMPLEMENTATE

### Fișiere modificate:

#### 1. **ircd/ircd_features.c**
```c
// ÎNAINTE:
F_S(HOST_HIDING_PREFIX, 0, "Nefarious", 0),
F_S(HIDDEN_HOST, FEAT_CASE, "Users.Nefarious", 0),
F_S(HIDDEN_OPERHOST, FEAT_CASE, "Staff.Nefarious", 0),
F_S(HIS_SERVERNAME, 0, "*.Nefarious", feature_notify_servername),
F_S(NETWORK, 0, "Nefarious", set_isupport_network),

// DUPĂ:
F_S(HOST_HIDING_PREFIX, 0, "UnderChat", 0),
F_S(HIDDEN_HOST, FEAT_CASE, "Users.UnderChat", 0),
F_S(HIDDEN_OPERHOST, FEAT_CASE, "Staff.UnderChat", 0),
F_S(HIS_SERVERNAME, 0, "*.UnderChat", feature_notify_servername),
F_S(NETWORK, 0, "UnderChat", set_isupport_network),
```

**Comentarii actualizate:**
```c
/* UnderChat FEAT_'s */
/* Some misc. UnderChat default paths */
```

#### 2. **ircd/m_help.c**
```c
// ÎNAINTE:
send_reply(sptr, RPL_HELPSTART, "*", "Nefarious Help System");
send_reply(sptr, RPL_HELPSTART, cmd, "Nefarious Help System");

// DUPĂ:
send_reply(sptr, RPL_HELPSTART, "*", "UnderChat Help System");
send_reply(sptr, RPL_HELPSTART, cmd, "UnderChat Help System");
```

#### 3. **include/ircd_features.h**
```c
// Comentarii actualizate:
/* UnderChat FEAT_'s */
/* Some misc. UnderChat default paths */
```

#### 4. **include/numeric.h**
```c
// Comentarii actualizate în toate definițiile:
#define RPL_BOUNCE            10        /* UnderChat extension */
#define RPL_STATSELINE       223        /* UnderChat extension */
#define RPL_CHKHEAD          286        /* QuakeNet - Asuka / UnderChat */
#define RPL_CHANUSER         287        /* QuakeNet - Asuka / UnderChat */
#define RPL_DATASTR          290        /* QuakeNet - Asuka / UnderChat */
#define RPL_ENDOFCHECK       291        /* QuakeNet - Asuka / UnderChat */
#define ERR_SEARCHNOMATCH    292        /* QuakeNet - Asuka / UnderChat */
#define RPL_WHOISSERVICE     310        /* UnderChat extension */
#define RPL_WHOISPRIVDEAF    316        /* UnderChat extension */
#define RPL_WHOISMARKS       339        /* UnderChat extension */
#define RPL_WHOISKILL        343        /* UnderChat extension */
#define RPL_EXCEPTLIST       348        /* IRCnet/UnderChat extension */
#define RPL_ENDOFEXCEPTLIST  349        /* IRCnet/UnderChat extension */
#define RPL_IRCOPSHEADER     386        /* UnderChat extension */
#define RPL_IRCOPS           387        /* UnderChat extension */
#define RPL_ENDOFIRCOPS      388        /* UnderChat extension */
#define ERR_SSLONLYCHAN      469        /* UnderChat extension */
#define ERR_OPERONLYCHAN     470        /* UnderChat extension */
```

---

## 🎯 REZULTAT VIZIBIL

### ÎNAINTE (v1.2.2):
```
[14:39] * Joins: iRO (iRO@Nefarious-2F378ED1.eushells.ro)
* iRO is iRO@Nefarious-2F378ED1.eushells.ro * iRO

/WHOIS iRO
iRO is iRO@Nefarious-2F378ED1.eushells.ro * iRO
iRO on *.Nefarious :The Nefarious World

/VERSION
Nefarious Network
```

### DUPĂ (v1.3.0):
```
[14:39] * Joins: iRO (iRO@UnderChat-2F378ED1.eushells.ro)
* iRO is iRO@UnderChat-2F378ED1.eushells.ro * iRO

/WHOIS iRO
iRO is iRO@UnderChat-2F378ED1.eushells.ro * iRO
iRO on *.UnderChat :The UnderChat World

/VERSION
UnderChat Network
```

### Exemplu host hiding:
```
ÎNAINTE: user@Nefarious-A1B2C3D4.provider.com
DUPĂ:    user@UnderChat-A1B2C3D4.provider.com
```

---

## 🚀 UPGRADE PENTRU UTILIZATORI

### ⚠️ **IMPORTANT: RECOMPILARE OBLIGATORIE!**

Modificările sunt în **codul sursă C**, nu în configurație. Trebuie să recompilezi serverul pentru a aplica schimbările.

### Pași de upgrade:

```bash
# 1. Oprește serverul (dacă rulează)
killall ircd

# 2. Actualizează repository-ul
cd ~/ircu2
git pull origin main
git checkout v1.3.0

# 3. Backup configurația existentă
cp /home/ircd/ircd/lib/ircd.conf /home/ircd/ircd.conf.backup-$(date +%Y%m%d-%H%M%S)

# 4. RECOMPILARE COMPLETĂ
make clean
./configure --prefix=/home/ircd/ircd --with-maxcon=400
make
make install

# 5. Pornește serverul cu noua versiune
/home/ircd/ircd/bin/ircd -f /home/ircd/ircd/lib/ircd.conf

# 6. Verifică versiunea
ps aux | grep ircd
```

### Alternativ - Reinstalare completă:

```bash
cd ~/ircu2
git pull origin main
git checkout v1.3.0

# Backup config
cp /home/ircd/ircd/lib/ircd.conf /tmp/ircd.conf.backup

# Reinstalează (recompilează automat)
./install.sh

# Restaurează config dacă ai modificări custom
# sau configurează din nou interactiv
```

---

## 🧪 VERIFICARE DUPĂ UPGRADE

### 1. Verifică versiunea compilată:
```bash
/home/ircd/ircd/bin/ircd -v
# Ar trebui să afișeze informații despre versiune
```

### 2. Verifică că serverul rulează:
```bash
ps aux | grep ircd
```

### 3. Conectează-te și testează:
```irc
# Conectează-te la server
/SERVER madrid.es.eu.underchat.org 6667

# Testează hostname-ul tău
/WHOIS NickTau
# Ar trebui să vezi: NickTau@UnderChat-HASH.domain

# Verifică network name
/LUSERS
# Ar trebui să vadă referințe la "UnderChat"
```

### 4. Testează sistemul de help:
```irc
/HELP
# Ar trebui să afișeze:
# *** UnderChat Help System
```

---

## 📊 IMPACT

### Ce se schimbă vizibil:
- ✅ **Hostname-uri:** `UnderChat-` în loc de `Nefarious-`
- ✅ **Network name:** `UnderChat` în loc de `Nefarious`
- ✅ **Server name în WHOIS:** `*.UnderChat`
- ✅ **Hidden hosts:** `Users.UnderChat`, `Staff.UnderChat`
- ✅ **Help system:** "UnderChat Help System"

### Ce NU se schimbă:
- ❌ Configurația existentă (`ircd.conf`)
- ❌ Comportamentul serverului
- ❌ Compatibilitatea cu alte servere P10
- ❌ Comenzile IRC
- ❌ Funcționalitatea

---

## 🔧 DEBUGGING

### Problemă: Încă văd "Nefarious" după upgrade

**Cauză:** Nu ai recompilat serverul sau rulezi versiunea veche.

**Soluție:**
```bash
# Verifică ce proces rulează
ps aux | grep ircd

# Oprește procesul vechi
killall ircd

# Verifică calea binarului
which ircd

# Pornește versiunea nouă explicit
/home/ircd/ircd/bin/ircd -f /home/ircd/ircd/lib/ircd.conf

# Verifică din nou
ps aux | grep ircd
```

### Problemă: Erori la compilare

**Soluție:**
```bash
# Curăță și reîncearcă
cd ~/ircu2
make clean
make distclean
./configure --prefix=/home/ircd/ircd --with-maxcon=400
make
make install
```

---

## 📚 CONFIGURARE OVERRIDE (OPȚIONAL)

Dacă vrei să customizezi hostname-urile DUPĂ instalare, poți supra-scrie valorile în `ircd.conf`:

```conf
features {
    # Override host hiding prefix
    "HOST_HIDING_PREFIX" = "MyNetwork";
    
    # Override hidden host
    "HIDDEN_HOST" = "Users.MyNetwork.org";
    
    # Override oper hidden host
    "HIDDEN_OPERHOST" = "Staff.MyNetwork.org";
    
    # Override network name
    "NETWORK" = "MyNetwork";
};
```

**NOTĂ:** Aceste override-uri se aplică DOAR după ce ai compilat cu valorile default din cod!

---

## ✅ CHECKLIST UPGRADE

- [ ] Backup configurație existentă
- [ ] `git pull origin main`
- [ ] `git checkout v1.3.0`
- [ ] Oprire server existent (`killall ircd`)
- [ ] Recompilare completă (`make clean && ./configure && make && make install`)
- [ ] Pornire server nou (`/home/ircd/ircd/bin/ircd -f ...`)
- [ ] Verificare hostname în `/WHOIS`
- [ ] Verificare network name în `/LUSERS`
- [ ] Verificare help system (`/HELP`)
- [ ] Test conectare clienți
- [ ] Test link server-to-server (dacă aplicabil)

---

## 🎉 BENEFICII

### ÎNAINTE:
- ❌ Branding "Nefarious" (software original)
- ❌ Confuzie pentru utilizatori
- ❌ Nu reflectă identitatea rețelei

### DUPĂ:
- ✅ Branding "UnderChat" consistent
- ✅ Identitate clară a rețelei
- ✅ Profesionalism sporit
- ✅ Recunoaștere brand

---

## 📝 VERSIUNI

| Versiune | Data | Tip | Descriere |
|----------|------|-----|-----------|
| v1.2.0 | 13 Feb 2026 | Feature | Curățare + Link server-to-server |
| v1.2.1 | 13 Feb 2026 | Fix | Link server-to-server funcțional |
| v1.2.2 | 13 Feb 2026 | Security | Parola operator criptată MD5 |
| **v1.3.0** | **14 Feb 2026** | **Rebrand** | **UnderChat în loc de Nefarious** |

---

**Commit:** `REBRAND: Schimbăm 'Nefarious' în 'UnderChat' - Host hiding prefix + Network name`  
**Tag:** `v1.3.0`  
**Status:** ✅ PRODUCTION READY (necesită recompilare)

---

**⚠️ RECOMPILARE OBLIGATORIE DUPĂ UPGRADE!** 🔄

