aboutsummaryrefslogtreecommitdiff
path: root/programs/ekr_loop.c
diff options
context:
space:
mode:
Diffstat (limited to 'programs/ekr_loop.c')
-rw-r--r--programs/ekr_loop.c13
1 files changed, 10 insertions, 3 deletions
diff --git a/programs/ekr_loop.c b/programs/ekr_loop.c
index 21e323bf..df230886 100644
--- a/programs/ekr_loop.c
+++ b/programs/ekr_loop.c
@@ -258,7 +258,7 @@ print_addresses(struct socket *sock)
#endif
int
-main(void)
+main(int argc, char *argv[])
{
struct sockaddr_in sin_s, sin_c;
struct sockaddr_conn sconn;
@@ -280,6 +280,13 @@ main(void)
#ifdef _WIN32
WSADATA wsaData;
#endif
+ uint16_t client_port = 9900;
+ uint16_t server_port = 9901;
+
+ if (argc == 3) {
+ client_port = atoi(argv[1]);
+ server_port = atoi(argv[2]);
+ }
#ifdef _WIN32
if (WSAStartup(MAKEWORD(2,2), &wsaData) != 0) {
@@ -313,14 +320,14 @@ main(void)
#ifdef HAVE_SIN_LEN
sin_c.sin_len = sizeof(struct sockaddr_in);
#endif
- sin_c.sin_port = htons(9900);
+ sin_c.sin_port = htons(client_port);
sin_c.sin_addr.s_addr = htonl(INADDR_LOOPBACK);
memset(&sin_s, 0, sizeof(struct sockaddr_in));
sin_s.sin_family = AF_INET;
#ifdef HAVE_SIN_LEN
sin_s.sin_len = sizeof(struct sockaddr_in);
#endif
- sin_s.sin_port = htons(9901);
+ sin_s.sin_port = htons(server_port);
sin_s.sin_addr.s_addr = htonl(INADDR_LOOPBACK);
#ifdef _WIN32
if (bind(fd_c, (struct sockaddr *)&sin_c, sizeof(struct sockaddr_in)) == SOCKET_ERROR) {