Je ne doute pas que le code d'Avahi soit complexe, la question est plutôt de savoir si celait pouvait l'être moins.
Le fait de réimplementer 5 fois des listes chaînées, des tableau dynamiques, de faire du gros copier-coller, d'avoir des mégafonctions ou de faire des API D-Bus imbitables (wrappées dans des bibliothèques que ceux qui viennent de l'API de l'implémentation d'Apple ne comprennent pas pourquoi elles sont aussi compliquées à utiliser), n'a absolument rien à voir avec les problèmes de portabilités entre les OS.
Sérieusement quoi, c'est un programme réseau qui envoie et reçoit des datagrammes multicast. l'API des sockets est définie par des RFC respectées sur quasiment tout les systèmes. Et, comme d'habitude dans un programme réseau, la partie qui les utilisent ne représente qu'une toute petite partie du code. Et il existe plusieurs bibliothèques portables qui permettent d'abstraire tout ça.
[^] # Re: De plus en plus complexe, le système d'init...
Posté par Batchyx . En réponse à la dépêche Spéciale Lennart Poettering : nouvelles versions de systemd et PulseAudio. Évalué à 2.
Le fait de réimplementer 5 fois des listes chaînées, des tableau dynamiques, de faire du gros copier-coller, d'avoir des mégafonctions ou de faire des API D-Bus imbitables (wrappées dans des bibliothèques que ceux qui viennent de l'API de l'implémentation d'Apple ne comprennent pas pourquoi elles sont aussi compliquées à utiliser), n'a absolument rien à voir avec les problèmes de portabilités entre les OS.
Sérieusement quoi, c'est un programme réseau qui envoie et reçoit des datagrammes multicast. l'API des sockets est définie par des RFC respectées sur quasiment tout les systèmes. Et, comme d'habitude dans un programme réseau, la partie qui les utilisent ne représente qu'une toute petite partie du code. Et il existe plusieurs bibliothèques portables qui permettent d'abstraire tout ça.