Sagwin
Sagwin, le serveur
Le coeur même de Sagwin est le serveur, développé entièrement en C.

Pour l'instant il intégre toute les fonctions de bases d'une messagerie instantanée, c'est à dire:
- Cryptage du pass.
- Gestion complète de la liste des contacts (contact, ok, personne en attente).
- Gestion complète des messages (message, ouverture de pv, fermeture de pv, ecris un message ...).
- Gestion complète des status (connecté, et status personnalisable).
- Gestion des pseudonymes.
- Transmettre son ip.
- Gestion de l'idle (temps d'inactivité).

De plus certaines fonctionnalités sont en cours de code, ou pas tout à fais terminées:
- Messages à des personnes non connectées (restitution du message lors de leur connexion)
- et d'autres ...

Concernant les fonctions propres à l'administration, j'ai tenu à ce que le serveur soit au maximum configurable:
- Gestion complète des bans (utilisateur ou ip).
- Gestion complète des kills.
- Modification de toutes les limites du serveur.
- Modification des comptes.
- Modification de l'interface d'écoute, du port.
- et d'autres encore ...

Le serveur dispose de plusieurs "moniteurs", tout d'abord des fonctions de log des informations passées sur le server classées selon 4 niveaux (niveau 0: pas de log, niveau 1: log entier, niveau 2: log des commandes sans les données privées telles que les messages, niveau 3: log tout automatique).
Le log étant sur la sortie "normale" (stdout) il faut rediriger le flux vers un fichier pour loger dans un fichier (le niveau 3 s'en occupe automatiquement, il n'y aucune perte possible).
Le serveur dispose d'une surveillance de la mémoire allouée, vous pouvez à tout moment par le biais d'un compte administrateur (ou sur la sortie) savoir quelle taille mémoire est allouée pour les clients du serveur.

Fonctionnement du serveur
Le serveur peut etre installer dans n'importe quel répetoire, néanmoins il dois avoir les droits d'écriture dans celui-ci et il faut créer dans le même répertoire que le binaire un repertoire "acc" dans lequel seront stockés les comptes des utilisateurs.

Le serveur admet des limites qui sont modifiables par l'administrateur comme la limite de la taille du pseudonyme (400 caractères étant le maximum absolu), on peut aussi modifier le nombre de messages à des personnes déconnectées qu'un utilisateur peut envoyer, la limite du nombre de groupe.

Attention: Les groupes ne sont pas encore implémentés, et la limite des messages "offline" non plus.

Concernant le protocole employé par Sagwin pour communiquer avec les clients, il est disponible dans la plupart des archives, je le mettrai séparément à télécharger. La version du document n'est certainement pas la dernière, je tacherai de la mettre à jour régulièrement.

Les comptes
Les fichiers de comptes sont dans le répertoire "acc" et ont pour nom utilisateur.tim
Leur structure interne est de cette forme:

id=utilisateur
pass=mot_de_passe
nick=pseudonyme
<CONTACT>
</CONTACT>
<OK>
</OK>
<WAIT>
</WAIT>

Ceci est un compte d'un utilisateur normal.

Pour un administrateur le compte est de la forme:

id=utilisateur
pass=mot_de_passe
[ADMIN]

Attention les administrateurs ne peuvent pas avoir de contacts, se sont des comptes spéciaux pour la configuration et la maintenance du serveur.
Dans la section outils d'administration devrait être présent quelques programmes pour créer des comptes automatiquement (dont un formulaire en html et une page en php pour inclure dans les sites).

Par défault le serveur ouvre le port 10001, lie l'interface 0.0.0.0 (toutes les interfaces), et a le niveau 2 de debug. Pour le reste des options veuillez regarder le fichier sagwind_conf généré automatiquement par le serveur, vous pouvez le modifier a votre guise.

Afin de faciliter la tache d'administration, une "console" avec GUI (en GTK+) est disponible sous Gnu/Linux et aussi sous windows, rendez vous la aussi dans la section outils d'administration du site pour plus d'informations, ou à la page des téléchargements.


Les choses à venir
Afin de ne pas parler des petites choses mais des projets plus grands, Sagwin IM (ce serveur ci) devrait être lié à une extension du serveur permettant l'échange de petites images (comme les avatars), des smileys personnels dans les conversations et carrément incruster des images dans des pvs.
Cette extension pourra surement avoir d'autres fonctionnalités plus tard.

Sagwin devrait pouvoir former des reseaux en interconnectant plusieurs servers rendant cet IM plus convivial, le protocole est encore en phase d'écriture.

Bientôt devrait être implémenter la conversation à plusieurs, mais le protocole est en cours de réflexion.

Copyleft Thaeron 2004 - Site sous Licence GPL - Sagwin
.