FreeBSD Bugzilla – Attachment 156923 Details for
Bug 30854
bootpd(8) bootpgw change - skip ARP modifications by option
Home
|
New
|
Browse
|
Search
|
[?]
|
Reports
|
Help
|
New Account
|
Log In
Remember
[x]
|
Forgot Password
Login:
[x]
[patch]
updated patch
bootpd.diff (text/plain), 3.86 KB, created by
Mark Felder
on 2015-05-19 03:46:48 UTC
(
hide
)
Description:
updated patch
Filename:
MIME Type:
Creator:
Mark Felder
Created:
2015-05-19 03:46:48 UTC
Size:
3.86 KB
patch
obsolete
>Index: libexec/bootpd/bootpd.8 >=================================================================== >--- libexec/bootpd/bootpd.8 (revision 283070) >+++ libexec/bootpd/bootpd.8 (working copy) >@@ -103,6 +103,8 @@ > .Sh OPTIONS > The following options are available: > .Bl -tag -width indent >+.It Fl a >+Skip ARP table modifications. > .It Fl t Ar timeout > Specify the > .Ar timeout >Index: libexec/bootpd/bootpd.c >=================================================================== >--- libexec/bootpd/bootpd.c (revision 283070) >+++ libexec/bootpd/bootpd.c (working copy) >@@ -143,6 +143,7 @@ > 15 * 60L, /* tv_sec */ > 0 /* tv_usec */ > }; >+int noarp = FALSE; /* skip modifications of ARP table */ > > /* > * General >@@ -266,6 +267,9 @@ > break; > switch (argv[0][1]) { > >+ case 'a': /* don't modify the ARP table */ >+ noarp = TRUE; >+ break; > case 'c': /* chdir_path */ > if (argv[0][2]) { > stmp = &(argv[0][2]); >@@ -583,8 +587,9 @@ > usage() > { > fprintf(stderr, >- "usage: bootpd [-i | -s] [-c chdir-path] [-d level] [-h hostname] [-t timeout]\n"); >+ "usage: bootpd [-a] [-i | -s] [-c chdir-path] [-d level] [-h hostname] [-t timeout]\n"); > fprintf(stderr, " [bootptab [dumpfile]]\n"); >+ fprintf(stderr, "\t -a\tdon't modify ARP table\n"); > fprintf(stderr, "\t -c n\tset current directory\n"); > fprintf(stderr, "\t -d n\tset debug level\n"); > fprintf(stderr, "\t -h n\tset the hostname to listen on\n"); >@@ -1063,10 +1068,12 @@ > if (haf == 0) > haf = HTYPE_ETHERNET; > >- if (debug > 1) >- report(LOG_INFO, "setarp %s - %s", >- inet_ntoa(dst), haddrtoa(ha, len)); >- setarp(s, &dst, haf, ha, len); >+ if ( noarp == FALSE ) { >+ if (debug > 1) >+ report(LOG_INFO, "setarp %s - %s", >+ inet_ntoa(dst), haddrtoa(ha, len)); >+ setarp(s, &dst, haf, ha, len); >+ } > } > > if ((forward == 0) && >Index: libexec/bootpd/bootpgw/bootpgw.c >=================================================================== >--- libexec/bootpd/bootpgw/bootpgw.c (revision 283070) >+++ libexec/bootpd/bootpgw/bootpgw.c (working copy) >@@ -124,6 +124,7 @@ > u_char maxhops = 4; /* Number of hops allowed for requests. */ > u_int minwait = 3; /* Number of seconds client must wait before > its bootrequest packets are forwarded. */ >+int noarp = FALSE; /* skip modifications of ARP table */ > > /* > * General >@@ -238,6 +239,9 @@ > break; > switch (argv[0][1]) { > >+ case 'a': /* don't modify the ARP table */ >+ noarp = TRUE; >+ break; > case 'd': /* debug level */ > if (argv[0][2]) { > stmp = &(argv[0][2]); >@@ -496,7 +500,8 @@ > usage() > { > fprintf(stderr, >- "usage: bootpgw [-d level] [-i] [-s] [-t timeout] server\n"); >+ "usage: \nbootpgw [-a] [-d level] [-h count] [-i] [-s] [-t timeout] [-w time] server\n"); >+ fprintf(stderr, "\t -a\tdon't modify ARP table\n"); > fprintf(stderr, "\t -d n\tset debug level\n"); > fprintf(stderr, "\t -h n\tset max hop count\n"); > fprintf(stderr, "\t -i\tforce inetd mode (run as child of inetd)\n"); >@@ -641,19 +646,21 @@ > send_addr.sin_addr = bp->bp_yiaddr; > send_addr.sin_port = htons(bootpc_port); > >- /* Create an ARP cache entry for the client. */ >- ha = bp->bp_chaddr; >- len = bp->bp_hlen; >- if (len > MAXHADDRLEN) >- len = MAXHADDRLEN; >- haf = (int) bp->bp_htype; >- if (haf == 0) >- haf = HTYPE_ETHERNET; >+ if ( noarp == FALSE ) { >+ /* Create an ARP cache entry for the client. */ >+ ha = bp->bp_chaddr; >+ len = bp->bp_hlen; >+ if (len > MAXHADDRLEN) >+ len = MAXHADDRLEN; >+ haf = (int) bp->bp_htype; >+ if (haf == 0) >+ haf = HTYPE_ETHERNET; > >- if (debug > 1) >- report(LOG_INFO, "setarp %s - %s", >- inet_ntoa(bp->bp_yiaddr), haddrtoa(ha, len)); >- setarp(s, &bp->bp_yiaddr, haf, ha, len); >+ if (debug > 1) >+ report(LOG_INFO, "setarp %s - %s", >+ inet_ntoa(dst), haddrtoa(ha, len)); >+ setarp(s, &dst, haf, ha, len); >+ } > > /* Send reply with same size packet as request used. */ > if (sendto(s, pktbuf, pktlen, 0,
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 30854
:
16917
| 156923