mirror of
https://git.FreeBSD.org/ports.git
synced 2024-12-21 04:06:46 +00:00
3e9eaed62a
PR: 113808 Submitted by: Pavel I Volkov
88 lines
2.8 KiB
C
88 lines
2.8 KiB
C
--- dynamips.c.orig Wed Feb 14 20:37:58 2007
|
|
+++ dynamips.c Fri Apr 6 21:11:38 2007
|
|
@@ -61,6 +61,7 @@
|
|
/* Hypervisor */
|
|
int hypervisor_mode = 0;
|
|
int hypervisor_tcp_port = 0;
|
|
+char hypervisor_ip_address[263]="\000"; /* 256(MAXHOSTNAMELEN)+1(:)+5(port)+NULL */
|
|
|
|
/* Log file */
|
|
char *log_file_name = NULL;
|
|
@@ -227,7 +228,7 @@
|
|
printf("Usage: %s [options] <ios_image>\n\n",argv[0]);
|
|
|
|
printf("Available options:\n"
|
|
- " -H <tcp_port> : Run in hypervisor mode\n\n"
|
|
+ " -H [ip_address:]<tcp_port> : Run in hypervisor mode\n\n"
|
|
" -P <platform> : Platform to emulate (7200, 3600, "
|
|
"2691, 3725 or 3745) "
|
|
"(default: 7200)\n\n"
|
|
@@ -254,7 +255,7 @@
|
|
" -R <rom_file> : Load an alternate ROM (default: embedded)\n"
|
|
" -k <clock_div> : Set the clock divisor (default: %d)\n"
|
|
"\n"
|
|
- " -T <port> : Console is on TCP <port>\n"
|
|
+ " -T [ip_address:]<port> : Console is on TCP <port>\n"
|
|
" -U <si_desc> : Console in on serial interface <si_desc>\n"
|
|
" (default is on the terminal)\n"
|
|
"\n"
|
|
@@ -780,6 +781,7 @@
|
|
int instance_id;
|
|
int res,option;
|
|
char *str;
|
|
+ char *index;
|
|
|
|
/* Get the instance ID */
|
|
instance_id = 0;
|
|
@@ -944,7 +946,15 @@
|
|
/* TCP server for Console Port */
|
|
case 'T':
|
|
vm->vtty_con_type = VTTY_TYPE_TCP;
|
|
- vm->vtty_con_tcp_port = atoi(optarg);
|
|
+ strncpy(hypervisor_ip_address,optarg,sizeof(hypervisor_ip_address));
|
|
+ index=strrchr(hypervisor_ip_address,':');
|
|
+ if (index != NULL) {
|
|
+ *index++='\000';
|
|
+ vm->vtty_con_tcp_port = atoi(index);
|
|
+ } else {
|
|
+ vm->vtty_con_tcp_port = atoi(hypervisor_ip_address);
|
|
+ hypervisor_ip_address[0]='\000';
|
|
+ }
|
|
break;
|
|
|
|
/* Serial interface for Console port */
|
|
@@ -1061,6 +1071,7 @@
|
|
static int run_hypervisor(int argc,char *argv[])
|
|
{
|
|
char *options_list = "H:l:hN:";
|
|
+ char *index;
|
|
int i,option;
|
|
|
|
for(i=1;i<argc;i++)
|
|
@@ -1079,7 +1090,15 @@
|
|
{
|
|
/* Hypervisor TCP port */
|
|
case 'H':
|
|
- hypervisor_tcp_port = atoi(optarg);
|
|
+ strncpy(hypervisor_ip_address,optarg,sizeof(hypervisor_ip_address));
|
|
+ index=strrchr(hypervisor_ip_address,':');
|
|
+ if (index != NULL) {
|
|
+ *index++='\000';
|
|
+ hypervisor_tcp_port = atoi(index);
|
|
+ } else {
|
|
+ hypervisor_tcp_port = atoi(hypervisor_ip_address);
|
|
+ hypervisor_ip_address[0]='\000';
|
|
+ }
|
|
break;
|
|
|
|
/* Log file */
|
|
@@ -1244,7 +1263,7 @@
|
|
/* Free resources used by instance */
|
|
vm_release(vm);
|
|
} else {
|
|
- hypervisor_tcp_server(hypervisor_tcp_port);
|
|
+ hypervisor_tcp_server(hypervisor_ip_address,hypervisor_tcp_port);
|
|
}
|
|
|
|
dynamips_reset();
|