Je suis en train de déboguer du code OpenSSH où il semble que plusieurs canaux ont été alloués sur une seule session SSH (serveur enfant connecté unique).Plusieurs canaux dans une seule session SSH
Mes requêtes pourraient être naïf ici:
Dans quelles conditions peuvent être multiples canaux ouverts? Quels sont les flux de messages SSH qui mènent à plusieurs canaux? Un organigramme de message sera très utile.
Est-il correct de libérer des canaux [0] dans le cas ci-dessous?
(gdb) p channels[0]
$1 = (Channel *) 0xb0f33e20
(gdb) p channels[0]->rfd
$2 = 0xd
(gdb) p channels[0]->efd
$3 = 0xffffffff
(gdb) p channels[0]->wfd
$4 = 0xffffffff
(gdb) p channels[1]->wfd
$5 = 0x9
(gdb) p channels[1]->efd
$6 = 0xffffffff
(gdb) p channels[1]->rfd
$7 = 0x9
Le canal peut également (et est habituellement) être un shell (ou une commande exec =). –
@MartinPrikryl oui. Du point de vue de l'utilisateur, il est généralement perçu de cette façon, mais le code des canaux n'a aucun sens du shell ou des commandes. Il redirige simplement les données d'un chemin à l'autre. – Jakuje