Libevent: comment fermer toutes les sockets ouvertes à l’arrêt?

J’ai créé un proxy HTTP simple en utilisant libevent. Il peut être arrêté en lui envoyant un signal SIGHUP qui est capturé par le gestionnaire de signaux. La fonction d’arrêt appelle event_base_loopexit , libère des structures et d’autres allocations et sorties de event_base_loopexit .

Le problème est si un SIGHUP est pris lorsqu’une connexion est ouverte. Je dois pouvoir fermer le socket en invoquant idéalement la même fonction de fermeture appelée lorsqu’un événement de fermeture est intercepté.

Y at-il un moyen correct ou standard de le faire?

Pour le moment, la seule chose à laquelle je peux penser est de garder une liste chaînée de connexions et de simplement parcourir cette étape à la fermeture, en les fermant à tour de rôle.

    Pour le moment, la seule chose à laquelle je peux penser est de conserver une liste de connexions> connectées et simplement de parcourir cette> page à la fermeture, en les fermant à tour de rôle.

    C’est ce que tu dois faire.

    (Notez que les sockets sont fermés lorsque l’application se ferme. Toutefois, si vous devez créer une logique personnalisée pour toutes les connexions à l’arrêt, vous devez les suivre et les parcourir.)