diff options
Diffstat (limited to 'session.c')
-rw-r--r-- | session.c | 17 |
1 files changed, 16 insertions, 1 deletions
@@ -33,7 +33,7 @@ | |||
33 | */ | 33 | */ |
34 | 34 | ||
35 | #include "includes.h" | 35 | #include "includes.h" |
36 | RCSID("$OpenBSD: session.c,v 1.42 2000/10/27 07:32:18 markus Exp $"); | 36 | RCSID("$OpenBSD: session.c,v 1.43 2000/11/06 23:04:56 markus Exp $"); |
37 | 37 | ||
38 | #include "xmalloc.h" | 38 | #include "xmalloc.h" |
39 | #include "ssh.h" | 39 | #include "ssh.h" |
@@ -1735,6 +1735,19 @@ session_exec_req(Session *s) | |||
1735 | return 1; | 1735 | return 1; |
1736 | } | 1736 | } |
1737 | 1737 | ||
1738 | int | ||
1739 | session_auth_agent_req(Session *s) | ||
1740 | { | ||
1741 | static int called = 0; | ||
1742 | packet_done(); | ||
1743 | if (called) { | ||
1744 | return 0; | ||
1745 | } else { | ||
1746 | called = 1; | ||
1747 | return auth_input_request_forwarding(s->pw); | ||
1748 | } | ||
1749 | } | ||
1750 | |||
1738 | void | 1751 | void |
1739 | session_input_channel_req(int id, void *arg) | 1752 | session_input_channel_req(int id, void *arg) |
1740 | { | 1753 | { |
@@ -1771,6 +1784,8 @@ session_input_channel_req(int id, void *arg) | |||
1771 | success = session_pty_req(s); | 1784 | success = session_pty_req(s); |
1772 | } else if (strcmp(rtype, "x11-req") == 0) { | 1785 | } else if (strcmp(rtype, "x11-req") == 0) { |
1773 | success = session_x11_req(s); | 1786 | success = session_x11_req(s); |
1787 | } else if (strcmp(rtype, "auth-agent-req@openssh.com") == 0) { | ||
1788 | success = session_auth_agent_req(s); | ||
1774 | } else if (strcmp(rtype, "subsystem") == 0) { | 1789 | } else if (strcmp(rtype, "subsystem") == 0) { |
1775 | success = session_subsystem_req(s); | 1790 | success = session_subsystem_req(s); |
1776 | } | 1791 | } |