version 1.1.1.3, 2018/04/24 16:49:21
|
version 1.1.1.4, 2018/04/24 16:54:45
|
Line 66 redir_x(inaddr, start_port, display, scr
|
Line 66 redir_x(inaddr, start_port, display, scr
|
} |
} |
#endif |
#endif |
|
|
#ifndef HAVE_INET_ATON |
|
int |
|
inet_aton(cp, ia) |
|
const char *cp; |
|
struct in_addr *ia; |
|
{ |
|
u_int32_t addr = inet_addr(cp); |
|
if (addr == 0xffffffff) |
|
return 0; |
|
ia->s_addr = addr; |
|
return 1; |
|
} |
|
#endif |
|
|
|
/* |
/* |
* Get our IP address and put it in our_addr |
* Get our IP address and put it in our_addr |
*/ |
*/ |
Line 97 getouraddr()
|
Line 83 getouraddr()
|
our_addr.s_addr = loopback_addr.s_addr; |
our_addr.s_addr = loopback_addr.s_addr; |
} |
} |
|
|
#if SIZEOF_CHAR_P == 8 |
|
|
|
struct quehead_32 { |
|
u_int32_t qh_link; |
|
u_int32_t qh_rlink; |
|
}; |
|
|
|
inline void |
|
insque_32(a, b) |
|
void *a; |
|
void *b; |
|
{ |
|
register struct quehead_32 *element = (struct quehead_32 *) a; |
|
register struct quehead_32 *head = (struct quehead_32 *) b; |
|
element->qh_link = head->qh_link; |
|
head->qh_link = (u_int32_t)element; |
|
element->qh_rlink = (u_int32_t)head; |
|
((struct quehead_32 *)(element->qh_link))->qh_rlink |
|
= (u_int32_t)element; |
|
} |
|
|
|
inline void |
|
remque_32(a) |
|
void *a; |
|
{ |
|
register struct quehead_32 *element = (struct quehead_32 *) a; |
|
((struct quehead_32 *)(element->qh_link))->qh_rlink = element->qh_rlink; |
|
((struct quehead_32 *)(element->qh_rlink))->qh_link = element->qh_link; |
|
element->qh_rlink = 0; |
|
} |
|
|
|
#endif /* SIZEOF_CHAR_P == 8 */ |
|
|
|
struct quehead { |
struct quehead { |
struct quehead *qh_link; |
struct quehead *qh_link; |
struct quehead *qh_rlink; |
struct quehead *qh_rlink; |
Line 183 add_exec(ex_ptr, do_pty, exec, addr, por
|
Line 136 add_exec(ex_ptr, do_pty, exec, addr, por
|
(*ex_ptr)->ex_fport = port; |
(*ex_ptr)->ex_fport = port; |
(*ex_ptr)->ex_addr = addr; |
(*ex_ptr)->ex_addr = addr; |
(*ex_ptr)->ex_pty = do_pty; |
(*ex_ptr)->ex_pty = do_pty; |
(*ex_ptr)->ex_exec = strdup(exec); |
(*ex_ptr)->ex_exec = (do_pty == 3) ? exec : strdup(exec); |
(*ex_ptr)->ex_next = tmp_ptr; |
(*ex_ptr)->ex_next = tmp_ptr; |
return 0; |
return 0; |
} |
} |
Line 304 fork_exec(struct socket *so, const char
|
Line 257 fork_exec(struct socket *so, const char
|
{ |
{ |
int s; |
int s; |
struct sockaddr_in addr; |
struct sockaddr_in addr; |
int addrlen = sizeof(addr); |
socklen_t addrlen = sizeof(addr); |
int opt; |
int opt; |
int master = -1; |
int master = -1; |
char *argv[256]; |
const char *argv[256]; |
#if 0 |
#if 0 |
char buff[256]; |
char buff[256]; |
#endif |
#endif |
Line 411 fork_exec(struct socket *so, const char
|
Line 364 fork_exec(struct socket *so, const char
|
} while (c); |
} while (c); |
|
|
argv[i] = 0; |
argv[i] = 0; |
execvp(argv[0], argv); |
execvp(argv[0], (char **)argv); |
|
|
/* Ooops, failed, let's tell the user why */ |
/* Ooops, failed, let's tell the user why */ |
{ |
{ |
char buff[256]; |
char buff[256]; |
|
|
sprintf(buff, "Error: execvp of %s failed: %s\n", |
snprintf(buff, sizeof(buff), |
argv[0], strerror(errno)); |
"Error: execvp of %s failed: %s\n", |
|
argv[0], strerror(errno)); |
write(2, buff, strlen(buff)+1); |
write(2, buff, strlen(buff)+1); |
} |
} |
close(0); close(1); close(2); /* XXX */ |
close(0); close(1); close(2); /* XXX */ |