Developer ce8babe62f CRITICAL FIX: Fix subshell array corruption in domain discovery
ISSUE:
Pipe-to-while loops created subshells, preventing seen_domains array updates
from persisting to parent shell. This caused:
1. Duplicate domains in reference database
2. Database corruption
3. Inefficient double processing of domains

FIXES:

1. Lines 416-444: Changed pipe-based while to here-document
   - BEFORE: get_user_domains "$user" | while IFS= read -r domain; do
   - AFTER: while IFS= read -r domain; do ... done <<< "$user_domains"
   - Result: seen_domains updates now persist to parent shell

2. Lines 416-417: Call get_user_domains() only once
   - BEFORE: Called twice (lines 417 and 420)
   - AFTER: Called once, stored in $user_domains
   - Result: No duplicate function calls

3. Line 422: Added check for empty primary_domain
   - BEFORE: [ "$domain" = "$primary_domain" ]
   - AFTER: [ -n "$primary_domain" ] && [ "$domain" = "$primary_domain" ]
   - Result: Handles edge case where user has no domains

4. Lines 405-412: Fixed alias iteration subshell issue
   - BEFORE: echo ... | tr ... | while IFS= read -r alias; do
   - AFTER: while IFS= read -r alias; do ... done <<< "$(echo ... | tr ...)"
   - Result: seen_domains["alias"] updates persist

TESTING:
- bash -n validates syntax
- Logic verified for subshell fix
- Array updates will now persist to parent shell

Impact:
- Reference database no longer corrupted with duplicates
- Proper domain deduplication via seen_domains array
- Database building now works correctly

Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com>
2026-03-19 22:05:52 -04:00
2025-11-03 18:14:51 -05:00

🧪 Linux Server Toolkit - DEV Branch

STATUS: 🚀 Development & Testing Branch (Separate from Production)

This is the dev branch for testing, development, and experimentation. Changes here are isolated from production and can be safely tested before merging to main.


🚀 Quick Start

One command - pulls dev branch with YELLOW ⚠️ BETA banner:

curl -sL https://git.mull.lol/cschantz/Linux-Server-Management-Toolkit/archive/dev.tar.gz | tar xz && source linux-server-management-toolkit/run.sh

When exiting (option 0), answer "yes" and cleanup happens automatically - no extra steps.


📍 Key Differences (Dev vs Production)

Feature Dev Branch Production
Cache .sysref.beta .sysref
Version 2.1.0-BETA 2.1.0
Banner 🟨 Yellow (⚠️) 🔵 Cyan
Git Branch dev main
Purpose Testing & Development Stable/Production

📦 Features

Comprehensive multi-panel server management suite supporting cPanel, InterWorx, Plesk, and standalone Apache with:

  • 🛡️ Security & Monitoring: Live attack monitor, bot blocker, malware scanner, IP reputation
  • 💾 Backup & Recovery: Acronis management, MySQL database restore
  • 🌐 Website Diagnostics: Error analysis, WordPress tools, Cloudflare detection
  • 📧 Email Diagnostics: Mail queue, blacklist checker, SPF/DKIM/DMARC validation
  • 📊 Performance Analysis: MySQL optimization, PHP tuning, hardware health, Varnish cache
  • 🔍 System Diagnostics: Health checks, loadwatch analysis, bandwidth monitoring

📖 Documentation

For detailed documentation, see the main repository: https://git.mull.lol/cschantz/Linux-Server-Management-Toolkit


Version: 2.1.0-BETA Repository: https://git.mull.lol/cschantz/Linux-Server-Management-Toolkit Branch: dev

S
Description
No description provided
Readme MIT 18 MiB
Languages
Shell 100%