summaryrefslogtreecommitdiff
path: root/emulators/dynamips/files/patch-dev_vtty.c
diff options
context:
space:
mode:
Diffstat (limited to 'emulators/dynamips/files/patch-dev_vtty.c')
-rw-r--r--emulators/dynamips/files/patch-dev_vtty.c33
1 files changed, 33 insertions, 0 deletions
diff --git a/emulators/dynamips/files/patch-dev_vtty.c b/emulators/dynamips/files/patch-dev_vtty.c
new file mode 100644
index 000000000000..e99df79b2592
--- /dev/null
+++ b/emulators/dynamips/files/patch-dev_vtty.c
@@ -0,0 +1,33 @@
+--- dev_vtty.c.orig Fri Apr 6 16:44:07 2007
++++ dev_vtty.c Fri Apr 6 19:43:37 2007
+@@ -24,6 +24,8 @@
+ #include <fcntl.h>
+ #include <errno.h>
+ #include <assert.h>
++#include <netinet/in.h>
++#include <arpa/inet.h>
+
+ #include <arpa/telnet.h>
+
+@@ -43,6 +45,8 @@
+ #include "dev_c2600.h"
+ #include "dev_vtty.h"
+
++extern char hypervisor_ip_address[];
++
+ /* VTTY list */
+ static pthread_mutex_t vtty_list_mutex = PTHREAD_MUTEX_INITIALIZER;
+ static vtty_t *vtty_list = NULL;
+@@ -132,7 +136,11 @@
+
+ memset(&serv,0,sizeof(serv));
+ serv.sin_family = AF_INET;
+- serv.sin_addr.s_addr = htonl(INADDR_ANY);
++ if (strlen(hypervisor_ip_address) != 0 &&
++ inet_addr(hypervisor_ip_address) != INADDR_NONE)
++ serv.sin_addr.s_addr = inet_addr(hypervisor_ip_address);
++ else
++ serv.sin_addr.s_addr = htonl(INADDR_ANY);
+ serv.sin_port = htons(vtty->tcp_port);
+
+ if (bind(vtty->accept_fd,(struct sockaddr *)&serv,sizeof(serv)) < 0) {