Programmation

Préparation des paquages

Je viens de terminer les README pour Ubuntu et Leopard.
Pour ce faire, j'ai installé une distribution Ubuntu dans une machine virtuelle et ai recherché les paquages à installer. (En fait, la liste des paquages déjà précisés sur ce site était suffisante Winking .) Puis, j'en ai fait de même avec Léopard après avoir reformaté mon macbook. Vous n'avez qu'à suivre les instructions et normalement tout se passera bien.
En ce qui concerne Windows, je suis en train de regarder la documentation NSIS....
-

I'am back !

Quelques nouvelles de mes travaux.
- Tout d'abord, j'ai trouvé une solution au bug décrit dans la précédente nouvelle ! J'ai remplacé la fonction "gtk_file_chooser_dialog_new" par "gtk_file_selection_new". Cette modification n'intervient que pour les systèmes *X,
- l'architecture des structures ainsi que le mode de fonctionnement des plugins est terminé et en cours de tests. Il sera alors possible de développer des plugins à ajouter dans la feuille principale, dans les feuilles des statistiques ainsi que dans les menus contextuels de la représentation graphique, plus facilement qu'auparavant. Les plugins peuvent maintenant être au courant de l'état de l'application "support" (état de la carte, état des composants de l'interface grapique, têtes des listes chaînées, ...),
- la feuille des propriétés a été refaite,
- quelques bugs trouvés au "petit bonheur la chance",
- développement d'un plugins du genre "arpwatch" : ce développement me permet de tester le bon fonctionnement de la fonction function_mainframe tout en ajoutant un petit plus à Ethergrouik,
- ai changé le logo pour le fun...

Je n'ai pas encore fixé de date pour la prochaine version, mais cela ne devrait tarder : exécutable d'installation pour Windows et sources pour Ubuntu et MAC. N'étant pas un pro sur ces deux derniers systèmes, j'ai encore des difficultés à proposer une routine d'installation simple. De l'aide serait la bienvenue pour cette problématique car je commence par manquer de temps pour tout faire... Même s'il faut reconnaître que je ne croule pas sur les demandes de modifications ou d'améliorations de l'application. C'est pourtant simple ! "Pas d'expression de besoin, pas de logiciel qui fait ce que vous attendez !". Envoyez moi un mail avec une description précise de ce que vous voulez, et je vous répondrai dans la foulée après en avoir évalué sa faisabilité. Même si je ne publie sur le site qu'en français (sauf le tutorial), vous pouvez m'adresser vos observations en FR, US/UK, ESP ou bien GR.

-

Un problème qui dure...

Je suis toujours sur le même bug décrit précédemment et ai réussi à identifier à peu près à quel endroit cela se passe. Il s'agit de la fonction gtk_file_chooser_dialog_new. Il semble qu'il y ait un problème avec pthread_create et cette fonction. A moins que cela soit pthread...
Le plus dur pour le moment n'est pas de trouver une solution à ce problème, le plus dur c'est de trouver et maîtriser des outils qui me permettraient d'aller plus vite dans mes recherches de bug. Si vous avez des noms d'application, n'hésitez pas car je sèche un peu...
-

Pas facile sous mac...

Je viens de terminer la modification que je voulais réaliser sur la gestion des plugins. Cela a pris pas mal de temps car il a fallu reprendre tout le code. Une bonne chose de faite...
De même, j'ai enfin trouvé (du moins j'espère) le moyen de compiler les plugins proprement. J'ai ajouté un fichier README pour les commandes à passer sous linux.
Par contre, je suis un peu bloqué sous mac : gtk n'étant pas natif sous mac, je rencontre quelques petits problèmes avec l'éditeur de liens Sad Sad

-

Une évolution nécessaire...

Actuellement, les listes chaînées sont indépendantes et surtout réinitialisés lors du démarrage d'une capture. Bien qu'Ethergrouik fonctionne correctement ainsi, je vais être obligé de faire quelques "grosses" modifications pour la prise en compte des plugins. Je sais lancer une instance de DLL lorsqu'une capture est en cours, mais comment faire lorsque l'utilisateur fait une RAZ de la capture en cours ? Lors de cette RAZ, tous les pointeurs de tête sont libérés. D'où la problématique suivante : comment faire pour informer une instance de DLL de cette modification et pour donner les nouvelles adresses des pointeurs ? Actuellement, Ethergrouik n'offre pas suffisamment de facilité pour l'emploi des DLL. Aussi je vais devoir changer mon fusil d'épaule...
Pour ce faire, je vais créer un pointeur qui contiendra tous les pointeurs de tête ainsi que les pointeurs de fin de certaines listes. Ce pointeur sera initialisé une seule fois, au démarrage de l'application et sera passé en paramètre au DLL. Ce pointeur ne pourra pas être réinitialisé, donc son adresse sera toujours valide ! Charge à la DLL de vérifier la valeur des éléments présents dans la structure de ce pointeur.
A suivre...

-

J'y arrive, doucement, mais sûrement !

La gestion du thread de capture est terminée et semble fonctionner correctement.
J'en ai profité pour corriger deux nouveaux bugs. Le premier concerne le rafraîchissement de l'onglet "Map" après la réinitialisation d'une capture et le second concerne l'arrêt du timer d'émission des trames sous *X.
Cela va peut-être vous paraître bizarre, mais le fait de compiler Ethergrouik dans différents environnements me permet de corriger pas mal de bugs. La raison est simple : GCC ne réagit pas du tout de la même façon Happy

-