- del234(localproxy_by_fromfd, ps);
- del234(localproxy_by_tofd, ps);
+ if (ps->to_cmd >= 0) {
+ del234(localproxy_by_tofd, ps);
+ uxsel_del(ps->to_cmd);
+ close(ps->to_cmd);
+ }
-static void sk_localproxy_flush (Socket s)
-{
- /* Local_Proxy_Socket ps = (Local_Proxy_Socket) s; */
- /* do nothing */
-}
-
-static void sk_localproxy_set_private_ptr (Socket s, void *ptr)
+static void sk_localproxy_write_eof (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,
sk_localproxy_set_frozen,
sk_localproxy_socket_error
};
sk_localproxy_set_frozen,
sk_localproxy_socket_error
};
if (pipe(to_cmd_pipe) < 0 ||
pipe(from_cmd_pipe) < 0) {
ret->error = dupprintf("pipe: %s", strerror(errno));
if (pipe(to_cmd_pipe) < 0 ||
pipe(from_cmd_pipe) < 0) {
ret->error = dupprintf("pipe: %s", strerror(errno));
execl("/bin/sh", "sh", "-c", cmd, (void *)NULL);
_exit(255);
}
execl("/bin/sh", "sh", "-c", cmd, (void *)NULL);
_exit(255);
}