~mdw
/
sgt
/
putty
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Add an error check to every setsockopt call in uxnet.c.
[sgt/putty]
/
windows
/
winproxy.c
diff --git
a/windows/winproxy.c
b/windows/winproxy.c
index
877dc5e
..
75a7852
100644
(file)
--- a/
windows/winproxy.c
+++ b/
windows/winproxy.c
@@
-87,6
+87,13
@@
static int sk_localproxy_write_oob(Socket s, const char *data, int len)
return sk_localproxy_write(s, data, len);
}
return sk_localproxy_write(s, data, len);
}
+static void sk_localproxy_write_eof(Socket s)
+{
+ Local_Proxy_Socket ps = (Local_Proxy_Socket) s;
+
+ handle_write_eof(ps->to_cmd_h);
+}
+
static void sk_localproxy_flush(Socket s)
{
/* Local_Proxy_Socket ps = (Local_Proxy_Socket) s; */
static void sk_localproxy_flush(Socket s)
{
/* Local_Proxy_Socket ps = (Local_Proxy_Socket) s; */
@@
-123,7
+130,7
@@
static const char *sk_localproxy_socket_error(Socket s)
Socket platform_new_connection(SockAddr addr, char *hostname,
int port, int privport,
int oobinline, int nodelay, int keepalive,
Socket platform_new_connection(SockAddr addr, char *hostname,
int port, int privport,
int oobinline, int nodelay, int keepalive,
- Plug plug,
const Config *cfg
)
+ Plug plug,
Conf *conf
)
{
char *cmd;
{
char *cmd;
@@
-132,6
+139,7
@@
Socket platform_new_connection(SockAddr addr, char *hostname,
sk_localproxy_close,
sk_localproxy_write,
sk_localproxy_write_oob,
sk_localproxy_close,
sk_localproxy_write,
sk_localproxy_write_oob,
+ sk_localproxy_write_eof,
sk_localproxy_flush,
sk_localproxy_set_private_ptr,
sk_localproxy_get_private_ptr,
sk_localproxy_flush,
sk_localproxy_set_private_ptr,
sk_localproxy_get_private_ptr,
@@
-145,10
+153,10
@@
Socket platform_new_connection(SockAddr addr, char *hostname,
STARTUPINFO si;
PROCESS_INFORMATION pi;
STARTUPINFO si;
PROCESS_INFORMATION pi;
- if (c
fg->proxy_type
!= PROXY_CMD)
+ if (c
onf_get_int(conf, CONF_proxy_type)
!= PROXY_CMD)
return NULL;
return NULL;
- cmd = format_telnet_command(addr, port, c
fg
);
+ cmd = format_telnet_command(addr, port, c
onf
);
{
char *msg = dupprintf("Starting local proxy command: %s", cmd);
{
char *msg = dupprintf("Starting local proxy command: %s", cmd);
@@
-198,6
+206,8
@@
Socket platform_new_connection(SockAddr addr, char *hostname,
CreateProcess(NULL, cmd, NULL, NULL, TRUE,
CREATE_NO_WINDOW | NORMAL_PRIORITY_CLASS,
NULL, NULL, &si, &pi);
CreateProcess(NULL, cmd, NULL, NULL, TRUE,
CREATE_NO_WINDOW | NORMAL_PRIORITY_CLASS,
NULL, NULL, &si, &pi);
+ CloseHandle(pi.hProcess);
+ CloseHandle(pi.hThread);
sfree(cmd);
sfree(cmd);