FreeBSD Bugzilla – Attachment 77465 Details for
Bug 111549
ports/net/fping patch to add -S source_addr option
Home
|
New
|
Browse
|
Search
|
[?]
|
Reports
|
Help
|
New Account
|
Log In
Remember
[x]
|
Forgot Password
Login:
[x]
[patch]
file.diff
file.diff (text/plain), 2.19 KB, created by
pckizer
on 2007-04-14 02:20:02 UTC
(
hide
)
Description:
file.diff
Filename:
MIME Type:
Creator:
pckizer
Created:
2007-04-14 02:20:02 UTC
Size:
2.19 KB
patch
obsolete
>diff -ru ../fping-2.4b2_to-ipv6-orig/fping.c ./fping.c >--- ../fping-2.4b2_to-ipv6-orig/fping.c Sun Jan 20 19:06:30 2002 >+++ ./fping.c Fri Apr 13 14:36:02 2007 >@@ -283,6 +283,12 @@ > u_int count = 1; > u_int trials; > u_int report_interval = 0; >+int src_addr_present = 0; >+#ifndef IPV6 >+struct in_addr src_addr; >+#else >+struct in6_addr src_addr; >+#endif > > /* global stats */ > long max_reply = 0; >@@ -408,6 +414,11 @@ > struct protoent *proto; > char *buf; > uid_t uid; >+#ifndef IPV6 >+ struct sockaddr_in sa; >+#else >+ struct sockaddr_in6 sa; >+#endif > /* check if we are root */ > > if( geteuid() ) >@@ -491,7 +502,7 @@ > > /* get command line options */ > >- while( ( c = getopt( argc, argv, "gedhlmnqusaAvz:t:i:p:f:r:c:b:C:Q:B:" ) ) != EOF ) >+ while( ( c = getopt( argc, argv, "gedhlmnqusaAvz:t:i:p:f:r:c:b:C:Q:B:S:" ) ) != EOF ) > { > switch( c ) > { >@@ -639,6 +650,16 @@ > generate_flag = 1; > break; > >+ case 'S': >+#ifndef IPV6 >+ if( ! inet_pton( AF_INET, optarg, &src_addr ) ) >+#else >+ if( ! inet_pton( AF_INET6, optarg, &src_addr ) ) >+#endif >+ usage(); >+ src_addr_present = 1; >+ break; >+ > default: > usage(); > break; >@@ -962,6 +983,22 @@ > if( !num_hosts ) > exit( 2 ); > >+ /* set the source address */ >+ >+ if( src_addr_present ) >+ { >+ memset( &sa, 0, sizeof( sa ) ); >+#ifndef IPV6 >+ sa.sin_family = AF_INET; >+ sa.sin_addr = src_addr; >+#else >+ sa.sin6_family = AF_INET6; >+ sa.sin6_addr = src_addr; >+#endif >+ if ( bind( s, (struct sockaddr *)&sa, sizeof( sa ) ) < 0 ) >+ errno_crash_and_burn( "cannot bind source address" ); >+ } >+ > /* allocate array to hold outstanding ping requests */ > > table = ( HOST_ENTRY** )malloc( sizeof( HOST_ENTRY* ) * num_hosts ); >@@ -2732,6 +2769,7 @@ > fprintf( stderr, " -Q n same as -q, but show summary every n seconds\n" ); > fprintf( stderr, " -r n number of retries (default %d)\n", retry ); > fprintf( stderr, " -s print final stats\n" ); >+ fprintf( stderr, " -S addr set source address\n" ); > fprintf( stderr, " -t n individual target initial timeout (in millisec) (default %d)\n", timeout / 100 ); > fprintf( stderr, " -u show targets that are unreachable\n" ); > fprintf( stderr, " -v show version\n" );
You cannot view the attachment while viewing its details because your browser does not support IFRAMEs.
View the attachment on a separate page
.
View Attachment As Diff
View Attachment As Raw
Actions:
View
|
Diff
Attachments on
bug 111549
: 77465