Skip to content

Releases: skylidefr/WooCommerce-Server-Game-RCON

v1.0.2

Choose a tag to compare

@skylidefr skylidefr released this 01 Oct 02:01

v1.0.2 - Corrections de bugs critiques

🐛 Bugs critiques corrigés

Sécurité

  • SQL Injection : Utilisation de $wpdb->prepare() avec esc_like() pour toutes les requêtes de nettoyage
  • Rate limiting : Throttle JavaScript côté client (1 requête/seconde minimum)

Stabilité

  • Race conditions : Remplacement des transients par des locks atomiques avec flock()
  • Fuite de ressources : Fermeture garantie de tous les sockets dans des blocks finally
  • Memory leak : Nettoyage des logs optimisé avec SplFileObject au lieu de charger tout en RAM

Performance

  • Timeout imprécis : Utilisation de microtime(true) au lieu de time() pour des timeouts au milliseconde près
  • Logs volumineux : Rotation automatique sans saturer la mémoire

Compatibilité

  • PHP 7.4 : Remplacement de str_starts_with() par strpos() === 0
  • JSON : Validation stricte avec json_last_error() après chaque decode

📋 Détails techniques

Avant (v1.0.1)

// Race condition possible
if (get_transient($lock_key)) return;
set_transient($lock_key, time(), 120);

Après (v1.0.2)

// Lock atomique
$lock_handle = fopen($lock_file, 'c');
if (!flock($lock_handle, LOCK_EX | LOCK_NB)) return;
try {
    // Code protégé
} finally {
    flock($lock_handle, LOCK_UN);
    fclose($lock_handle);
}

🔄 Migration

Aucune action requise. La mise à jour est rétrocompatible.

⚠️ Important

Cette version corrige des bugs qui pouvaient causer :

  • Envoi de commandes en double lors de pics de trafic
  • Blocages serveur sur timeouts réseau
  • Saturation mémoire avec logs volumineux
  • Injection SQL potentielle lors de la désactivation

👉 Mise à jour fortement recommandée pour tous les utilisateurs.

📝 Changelog complet

  • fix: Lock atomique avec flock() pour éliminer race conditions
  • fix: Timeout précis avec microtime(true) au lieu de time()
  • fix: Fermeture garantie des sockets dans finally blocks
  • fix: Nettoyage logs optimisé avec SplFileObject (évite OOM)
  • fix: Validation JSON avec json_last_error() après decode
  • fix: SQL injection dans cleanup avec $wpdb->prepare()
  • fix: Compatibilité PHP 7.4 (remplacement str_starts_with)
  • fix: Rate limiting côté client (throttle 1 req/sec)
  • fix: Nettoyage complet des ressources à la désactivation

🧪 Tests

Testé sur :

  • PHP 7.4, 8.0, 8.1, 8.2
  • WordPress 6.0+
  • WooCommerce 7.0+ (HPOS activé et désactivé)
  • Valheim Dedicated Server

📚 Documentation

La documentation complète est disponible sur le README.

🤝 Contribution

Merci à la communauté pour les rapports de bugs et les tests.

v1.0.1

Choose a tag to compare

@skylidefr skylidefr released this 30 Sep 07:55

Release v1.0.1 - Valheim Optimization

Optimisations spécifiques Valheim

Cette version corrige et optimise le plugin pour une compatibilité parfaite avec les serveurs Valheim.

Nouvelles fonctionnalités

  • Champ SteamID64 : Ajout d'un champ optionnel au checkout pour collecter le SteamID64 des joueurs
    • Validation automatique (17 chiffres commençant par 7656119)
    • Variable {steam_id} disponible dans les commandes RCON
    • Essentiel pour les commandes admin Valheim (kick, ban, permit)

Corrections majeures

  • Port par défaut corrigé : 2457 (Valheim RCON) au lieu de 28016 (Rust)
  • Timeout augmenté : 10 secondes par défaut au lieu de 3 (les serveurs Valheim sont plus lents)
  • Timeout minimum : Passage de 1s à 5s pour éviter les timeouts prématurés
  • Commande de test : Utilisation de "info" au lieu de "echo test" (compatible Valheim)
  • Lecture RCON : Timeout de lecture augmenté à 10 secondes

Améliorations de stabilité

  • Système de lock robuste : Remplacement de wp_cache par transients pour éviter les doublons
    • Protection contre les race conditions
    • Lock de 2 minutes au lieu de 1
    • Fonctionne même sans object cache configuré
  • Affichage logs optimisé : Limitation à 100 dernières lignes pour éviter saturation mémoire
  • Validation renforcée : Filtrage côté serveur de tous les champs utilisateur

Documentation améliorée

  • Ajout d'exemples de commandes Valheim dans l'interface produit
  • Warning sur les limitations de Valheim RCON (pas de liste de joueurs)
  • Documentation des variables disponibles
  • Notes sur les commandes fiables (broadcast, say) vs commandes nécessitant SteamID

Corrections de bugs

  • Correction de l'encodage UTF-8 dans les commentaires
  • Validation manquante de maxlength côté serveur
  • Protection contre les commandes avec caractères dangereux

Configuration recommandée pour Valheim

Port RCON : 2457
Timeout : 10-15 secondes
Commandes fiables : broadcast, say, save
Variables : {game_username}, {steam_id}, {billing_first_name}, {order_id}

Breaking Changes

Aucun - Cette version est rétrocompatible avec la v1.0.0

Migration depuis v1.0.0

Aucune action requise. Les anciennes configurations sont automatiquement migrées.

Installation

  1. Télécharger le fichier ZIP depuis les releases
  2. Installer via WordPress Admin > Extensions > Ajouter
  3. Activer le plugin
  4. Configurer vos serveurs RCON dans Réglages > Server Game RCON

Remerciements

Merci à la communauté Valheim pour les retours sur les timeouts et le comportement RCON.


Compatibilité : WordPress 5.8+, WooCommerce 6.0+, PHP 7.4+
Testé avec : Valheim Dedicated Server + Valheim RCON mod

v1.0.0

Choose a tag to compare

@skylidefr skylidefr released this 28 Sep 15:30
8a14d91

Version initiale du plugin générique
Support multi-serveurs RCON
Compatible HPOS WooCommerce
Système de retry automatique
Interface d'administration moderne
Mise à jour automatique via GitHub