1*c110a92dSBruce A. Mah #include "iperf_config.h"
2*c110a92dSBruce A. Mah
33e587542SJef Poskanzer #include <stdio.h>
43e587542SJef Poskanzer #include <stdlib.h>
53e587542SJef Poskanzer #include <unistd.h>
63e587542SJef Poskanzer #include <string.h>
7426221a3SBruce A. Mah #ifdef HAVE_STDINT_H
83e587542SJef Poskanzer #include <stdint.h>
9426221a3SBruce A. Mah #endif
103e587542SJef Poskanzer
113e587542SJef Poskanzer #include <iperf_api.h>
123e587542SJef Poskanzer
133e587542SJef Poskanzer int
main(int argc,char ** argv)143e587542SJef Poskanzer main( int argc, char** argv )
153e587542SJef Poskanzer {
163e587542SJef Poskanzer char* argv0;
173e587542SJef Poskanzer char* host;
183e587542SJef Poskanzer int port;
193e587542SJef Poskanzer struct iperf_test *test;
203e587542SJef Poskanzer
213e587542SJef Poskanzer argv0 = strrchr( argv[0], '/' );
223e587542SJef Poskanzer if ( argv0 != (char*) 0 )
233e587542SJef Poskanzer ++argv0;
243e587542SJef Poskanzer else
253e587542SJef Poskanzer argv0 = argv[0];
263e587542SJef Poskanzer
273e587542SJef Poskanzer if ( argc != 3 ) {
283e587542SJef Poskanzer fprintf( stderr, "usage: %s [host] [port]\n", argv0 );
293e587542SJef Poskanzer exit( EXIT_FAILURE );
303e587542SJef Poskanzer }
313e587542SJef Poskanzer host = argv[1];
323e587542SJef Poskanzer port = atoi( argv[2] );
333e587542SJef Poskanzer
343e587542SJef Poskanzer test = iperf_new_test();
353e587542SJef Poskanzer if ( test == NULL ) {
363e587542SJef Poskanzer fprintf( stderr, "%s: failed to create test\n", argv0 );
373e587542SJef Poskanzer exit( EXIT_FAILURE );
383e587542SJef Poskanzer }
393e587542SJef Poskanzer iperf_defaults( test );
408bdc8fffSJef Poskanzer iperf_set_verbose( test, 1 );
41a27f6534SJef Poskanzer
423e587542SJef Poskanzer iperf_set_test_role( test, 'c' );
433e587542SJef Poskanzer iperf_set_test_server_hostname( test, host );
443e587542SJef Poskanzer iperf_set_test_server_port( test, port );
458bdc8fffSJef Poskanzer /* iperf_set_test_reverse( test, 1 ); */
468bdc8fffSJef Poskanzer iperf_set_test_omit( test, 3 );
478bdc8fffSJef Poskanzer iperf_set_test_duration( test, 5 );
488bdc8fffSJef Poskanzer iperf_set_test_reporter_interval( test, 1 );
498bdc8fffSJef Poskanzer iperf_set_test_stats_interval( test, 1 );
502939863bSBruce A. Mah /* iperf_set_test_json_output( test, 1 ); */
513e587542SJef Poskanzer
523e587542SJef Poskanzer if ( iperf_run_client( test ) < 0 ) {
533e587542SJef Poskanzer fprintf( stderr, "%s: error - %s\n", argv0, iperf_strerror( i_errno ) );
543e587542SJef Poskanzer exit( EXIT_FAILURE );
553e587542SJef Poskanzer }
563e587542SJef Poskanzer
572939863bSBruce A. Mah if (iperf_get_test_json_output_string(test)) {
582939863bSBruce A. Mah fprintf(iperf_get_test_outfile(test), "%zd bytes of JSON emitted\n",
592939863bSBruce A. Mah strlen(iperf_get_test_json_output_string(test)));
602939863bSBruce A. Mah }
612939863bSBruce A. Mah
623e587542SJef Poskanzer iperf_free_test( test );
633e587542SJef Poskanzer exit( EXIT_SUCCESS );
643e587542SJef Poskanzer }
65