Fix a protocol botch: after returning SSH_MSG_USERAUTH_PK_OK to say it's ok to proceed with publickey authentication, stay in Authing state instead of switching to Established. This was causing MacOSX ssh client to hang. Reference: /n/sources/patch/applied/ssh2-pk-ok Date: Wed Jul 25 16:45:59 CES 2012 Signed-off-by: miller@hamnavoe.com --- /sys/src/cmd/ssh2/netssh.c Wed Jul 25 16:42:48 2012 +++ /sys/src/cmd/ssh2/netssh.c Wed Jul 25 16:42:42 2012 @@ -2534,12 +2534,14 @@ bail(c, p, p2, "msg disconnect"); case SSH_MSG_USERAUTH_REQUEST: switch (auth_req(p, c)) { - case 0: + case 0: /* success */ establish(c); break; - case -1: + case 1: /* ok to try again */ break; - case -2: + case -1: /* failure */ + break; + case -2: /* can't happen? */ bail(c, p, p2, "in userauth request"); } break; @@ -2892,7 +2894,7 @@ add_byte(p2, SSH_MSG_USERAUTH_PK_OK); add_string(p2, alg); add_block(p2, blob, nblob); - return 0; + return 1; } get_string(p, q, sig, Blobsz, &nsig);