- djm@cvs.openbsd.org 2010/05/14 23:29:23
     [channels.c channels.h mux.c ssh.c]
     Pause the mux channel while waiting for reply from aynch callbacks.
     Prevents misordering of replies if new requests arrive while waiting.

     Extend channel open confirm callback to allow signalling failure
     conditions as well as success. Use this to 1) fix a memory leak, 2)
     start using the above pause mechanism and 3) delay sending a success/
     failure message on mux slave session open until we receive a reply from
     the server.

     motivated by and with feedback from markus@
5 files changed
tree: e536e2b4031a4dd70026ff49c39b02b72af06f30
  1. .cvsignore
  2. CREDITS
  3. ChangeLog
  4. INSTALL
  5. LICENCE
  6. Makefile.in
  7. OVERVIEW
  8. PROTOCOL
  9. PROTOCOL.agent
  10. PROTOCOL.certkeys
  11. PROTOCOL.mux
  12. README
  13. README.dns
  14. README.platform
  15. README.privsep
  16. README.tun
  17. TODO
  18. WARNING.RNG
  19. aclocal.m4
  20. acss.c
  21. acss.h
  22. addrmatch.c
  23. atomicio.c
  24. atomicio.h
  25. audit-bsm.c
  26. audit.c
  27. audit.h
  28. auth-bsdauth.c
  29. auth-chall.c
  30. auth-krb5.c
  31. auth-options.c
  32. auth-options.h
  33. auth-pam.c
  34. auth-pam.h
  35. auth-passwd.c
  36. auth-rh-rsa.c
  37. auth-rhosts.c
  38. auth-rsa.c
  39. auth-shadow.c
  40. auth-sia.c
  41. auth-sia.h
  42. auth-skey.c
  43. auth.c
  44. auth.h
  45. auth1.c
  46. auth2-chall.c
  47. auth2-gss.c
  48. auth2-hostbased.c
  49. auth2-jpake.c
  50. auth2-kbdint.c
  51. auth2-none.c
  52. auth2-passwd.c
  53. auth2-pubkey.c
  54. auth2.c
  55. authfd.c
  56. authfd.h
  57. authfile.c
  58. authfile.h
  59. bufaux.c
  60. bufbn.c
  61. buffer.c
  62. buffer.h
  63. buildpkg.sh.in
  64. canohost.c
  65. canohost.h
  66. channels.c
  67. channels.h
  68. cipher-3des1.c
  69. cipher-acss.c
  70. cipher-aes.c
  71. cipher-bf1.c
  72. cipher-ctr.c
  73. cipher.c
  74. cipher.h
  75. cleanup.c
  76. clientloop.c
  77. clientloop.h
  78. compat.c
  79. compat.h
  80. compress.c
  81. compress.h
  82. config.guess
  83. config.sub
  84. configure.ac
  85. contrib/
  86. crc32.c
  87. crc32.h
  88. deattack.c
  89. deattack.h
  90. defines.h
  91. dh.c
  92. dh.h
  93. dispatch.c
  94. dispatch.h
  95. dns.c
  96. dns.h
  97. entropy.c
  98. entropy.h
  99. fatal.c
  100. fixpaths
  101. fixprogs
  102. groupaccess.c
  103. groupaccess.h
  104. gss-genr.c
  105. gss-serv-krb5.c
  106. gss-serv.c
  107. hostfile.c
  108. hostfile.h
  109. includes.h
  110. install-sh
  111. jpake.c
  112. jpake.h
  113. kex.c
  114. kex.h
  115. kexdh.c
  116. kexdhc.c
  117. kexdhs.c
  118. kexgex.c
  119. kexgexc.c
  120. kexgexs.c
  121. key.c
  122. key.h
  123. log.c
  124. log.h
  125. loginrec.c
  126. loginrec.h
  127. logintest.c
  128. mac.c
  129. mac.h
  130. match.c
  131. match.h
  132. md-sha256.c
  133. md5crypt.c
  134. md5crypt.h
  135. mdoc2man.awk
  136. misc.c
  137. misc.h
  138. mkinstalldirs
  139. moduli
  140. moduli.5
  141. moduli.c
  142. monitor.c
  143. monitor.h
  144. monitor_fdpass.c
  145. monitor_fdpass.h
  146. monitor_mm.c
  147. monitor_mm.h
  148. monitor_wrap.c
  149. monitor_wrap.h
  150. msg.c
  151. msg.h
  152. mux.c
  153. myproposal.h
  154. nchan.c
  155. nchan.ms
  156. nchan2.ms
  157. openbsd-compat/
  158. openssh.xml.in
  159. opensshd.init.in
  160. packet.c
  161. packet.h
  162. pathnames.h
  163. pkcs11.h
  164. platform.c
  165. platform.h
  166. progressmeter.c
  167. progressmeter.h
  168. readconf.c
  169. readconf.h
  170. readpass.c
  171. regress/
  172. rijndael.c
  173. rijndael.h
  174. roaming.h
  175. roaming_client.c
  176. roaming_common.c
  177. roaming_dummy.c
  178. roaming_serv.c
  179. rsa.c
  180. rsa.h
  181. scard/
  182. schnorr.c
  183. schnorr.h
  184. scp.1
  185. scp.c
  186. servconf.c
  187. servconf.h
  188. serverloop.c
  189. serverloop.h
  190. session.c
  191. session.h
  192. sftp-client.c
  193. sftp-client.h
  194. sftp-common.c
  195. sftp-common.h
  196. sftp-glob.c
  197. sftp-server-main.c
  198. sftp-server.8
  199. sftp-server.c
  200. sftp.1
  201. sftp.c
  202. sftp.h
  203. ssh-add.1
  204. ssh-add.c
  205. ssh-agent.1
  206. ssh-agent.c
  207. ssh-dss.c
  208. ssh-gss.h
  209. ssh-keygen.1
  210. ssh-keygen.c
  211. ssh-keyscan.1
  212. ssh-keyscan.c
  213. ssh-keysign.8
  214. ssh-keysign.c
  215. ssh-pkcs11-client.c
  216. ssh-pkcs11-helper.8
  217. ssh-pkcs11-helper.c
  218. ssh-pkcs11.c
  219. ssh-pkcs11.h
  220. ssh-rand-helper.8
  221. ssh-rand-helper.c
  222. ssh-rsa.c
  223. ssh.1
  224. ssh.c
  225. ssh.h
  226. ssh1.h
  227. ssh2.h
  228. ssh_config
  229. ssh_config.5
  230. ssh_prng_cmds.in
  231. sshconnect.c
  232. sshconnect.h
  233. sshconnect1.c
  234. sshconnect2.c
  235. sshd.8
  236. sshd.c
  237. sshd_config
  238. sshd_config.5
  239. sshlogin.c
  240. sshlogin.h
  241. sshpty.c
  242. sshpty.h
  243. sshtty.c
  244. survey.sh.in
  245. ttymodes.c
  246. ttymodes.h
  247. uidswap.c
  248. uidswap.h
  249. umac.c
  250. umac.h
  251. uuencode.c
  252. uuencode.h
  253. version.h
  254. xmalloc.c
  255. xmalloc.h