]> sjero.net Git - iperf/blobdiff - src/Settings.cpp
Add a --bindport option to specify the client source port
[iperf] / src / Settings.cpp
index 42c21a2bf5b22630f0c329478a2510c81ff36998..0b59f5c67650347d4128c50bbf9c0f0ffef2764f 100644 (file)
@@ -125,6 +125,7 @@ const struct option long_options[] =
 {"ipv6_domian",      no_argument, NULL, 'V'},
 {"suggest_win_size", no_argument, NULL, 'W'},
 {"ccid",          required_argument, NULL, 'Z'},
+{"bindport",   required_argument, NULL, 'O'},
 {0, 0, 0, 0}
 };
 
@@ -171,13 +172,14 @@ const struct option env_options[] =
 {"IPERF_IPV6_DOMAIN",      no_argument, NULL, 'V'},
 {"IPERF_SUGGEST_WIN_SIZE", required_argument, NULL, 'W'},
 {"IPERF_CCID", required_argument, NULL, 'Z'},
+{"IPERF_BINDPORT",   required_argument, NULL, 'O'},
 {0, 0, 0, 0}
 };
 
 #define SHORT_OPTIONS()
 
 const char short_options[] =
-      "12b::c:df:hi:j:l:mn:o:p:rst:uvw:x:y:A:B:CDF:IJ:L:M:NP:RS:T:UV:WZ:";
+      "12b::c:df:hi:j:l:mn:o:p:rst:uvw:x:y:A:B:CDF:IJ:L:M:NP:RS:T:UV:WZ:0:";
 
 /* -------------------------------------------------------------------
  * defaults
@@ -678,6 +680,13 @@ void Settings_Interpret( char option, const char *optarg, thread_Settings *mExtS
                }
                break;
 
+       case 'O': //Bind Port
+               mExtSettings->mBindPort=atoi(optarg);
+               if(mExtSettings->mBindPort <0 || mExtSettings->mBindPort > 65535){
+                       fprintf( stderr, "Bind Port %s is invalid\n", optarg);
+               }
+               break;
+
         default: // ignore unknown
             break;
     }