Magellan Linux

Contents of /trunk/dhcpcd/patches/dhcpcd-1.3.22-pl4-keepCacheAndResolv.patch

Parent Directory Parent Directory | Revision Log Revision Log


Revision 144 - (show annotations) (download)
Tue May 8 20:06:05 2007 UTC (17 years ago) by niro
File size: 4668 byte(s)
-import

1 diff -ru dhcpcd-1.3.22-pl4-orig/client.c dhcpcd-1.3.22-pl4/client.c
2 --- dhcpcd-1.3.22-pl4-orig/client.c 2003-01-01 09:24:37.000000000 +0800
3 +++ dhcpcd-1.3.22-pl4/client.c 2003-06-17 11:20:35.000000000 +0800
4 @@ -1076,10 +1076,16 @@
5 return &dhcpBound;
6 }
7 /*****************************************************************************/
8 -void *dhcpRelease()
9 +void *dhcpRelease(int deleteCacheFlag)
10 {
11 struct sockaddr addr;
12 - deleteDhcpCache();
13 + if ( deleteCacheFlag ) {
14 + if ( DebugFlag ) syslog (LOG_DEBUG,"Deleting Dhcp Cache");
15 + deleteDhcpCache();
16 + } else {
17 + if ( DebugFlag ) syslog (LOG_DEBUG,"Not Deleting Dhcp Cache");
18 + }
19 +
20 if ( DhcpIface.ciaddr == 0 ) return &dhcpInit;
21
22 buildDhcpRelease(random());
23 diff -ru dhcpcd-1.3.22-pl4-orig/client.h dhcpcd-1.3.22-pl4/client.h
24 --- dhcpcd-1.3.22-pl4-orig/client.h 2002-12-31 13:15:33.000000000 +0800
25 +++ dhcpcd-1.3.22-pl4/client.h 2003-06-17 11:21:51.000000000 +0800
26 @@ -197,7 +197,7 @@
27 void *dhcpBound();
28 void *dhcpRenew();
29 void *dhcpRebind();
30 -void *dhcpRelease();
31 +void *dhcpRelease(int deleteCacheFlag);
32 void *dhcpStop();
33 void *dhcpInform();
34 #ifdef ARPCHECK
35 diff -ru dhcpcd-1.3.22-pl4-orig/dhcpcd.8 dhcpcd-1.3.22-pl4/dhcpcd.8
36 --- dhcpcd-1.3.22-pl4-orig/dhcpcd.8 2003-01-01 09:31:31.000000000 +0800
37 +++ dhcpcd-1.3.22-pl4/dhcpcd.8 2003-06-17 13:11:12.000000000 +0800
38 @@ -9,7 +9,7 @@
39 .in +.5i
40 .ti -.5i
41 dhcpcd
42 -\%[\-dknrBCDHNRSTY]
43 +\%[\-dknrzBCDHNRSTY]
44 \%[\-t\ <timeout>]
45 \%[\-c\ <ExecFilePath>]
46 \%[-h\ <hostname>]
47 @@ -76,7 +76,7 @@
48 receives
49 .B SIGHUP
50 it will send
51 -.B DCHP_RELEASE
52 +.B DHCP_RELEASE
53 message to the server and destroy dhcpcd cache. In a case
54 .B dhcpcd
55 receives
56 @@ -93,6 +93,21 @@
57 from DHCP server which was assigned before the
58 system went down.
59 .TP
60 +.BI \-z
61 +Sends
62 +.B SIGUSR1
63 +signal to the
64 +.B dhcpcd
65 +process that is currently running. If
66 +.B dhcpcd
67 +receives
68 +.B SIGUSR1
69 +it will send
70 +.B DHCP_RELEASE
71 +message to the server
72 +.B without
73 +destroying the dhcpcd cache.
74 +.TP
75 .BI \-n
76 Sends
77 .B SIGALRM
78 diff -ru dhcpcd-1.3.22-pl4-orig/dhcpcd.c dhcpcd-1.3.22-pl4/dhcpcd.c
79 --- dhcpcd-1.3.22-pl4-orig/dhcpcd.c 2003-01-01 09:26:32.000000000 +0800
80 +++ dhcpcd-1.3.22-pl4/dhcpcd.c 2003-06-17 11:07:34.000000000 +0800
81 @@ -141,6 +141,10 @@
82 s++;
83 killFlag=SIGALRM;
84 goto prgs;
85 + case 'z':
86 + s++;
87 + killFlag=SIGUSR1;
88 + goto prgs;
89 case 'd':
90 s++;
91 DebugFlag=1;
92 @@ -325,7 +329,7 @@
93 default:
94 usage: print_version();
95 fprintf(stderr,
96 -"Usage: dhcpcd [-dknrBCDHNRSTY] [-l leasetime] [-h hostname] [-t timeout]\n\
97 +"Usage: dhcpcd [-dknrzBCDHNRSTY] [-l leasetime] [-h hostname] [-t timeout]\n\
98 [-i vendorClassID] [-I ClientID] [-c filename] [-s [ipaddr]]\n\
99 [-w windowsize] [-L ConfigDir] [-G [gateway]] [interface]\n");
100 exit(1);
101 diff -ru dhcpcd-1.3.22-pl4-orig/dhcpconfig.c dhcpcd-1.3.22-pl4/dhcpconfig.c
102 --- dhcpcd-1.3.22-pl4-orig/dhcpconfig.c 2002-12-30 06:05:44.000000000 +0800
103 +++ dhcpcd-1.3.22-pl4/dhcpconfig.c 2003-06-17 13:46:31.000000000 +0800
104 @@ -334,6 +334,16 @@
105 ((unsigned char *)&DhcpIface.ciaddr)[1],
106 ((unsigned char *)&DhcpIface.ciaddr)[2],
107 ((unsigned char *)&DhcpIface.ciaddr)[3]);
108 +
109 + /* In the case where machine dies for some reason, resolv.conf.sv would
110 + * not have been restored to original glory
111 + */
112 + if ( 1+rename(""RESOLV_CONF".sv",RESOLV_CONF) ) {
113 + if ( DebugFlag ) syslog (LOG_DEBUG, "Restored resolv.conf.sv from improper shutdown");
114 + } else {
115 + if ( DebugFlag ) syslog (LOG_DEBUG, "No resolv.conf.sv to restore");
116 + }
117 +
118 if ( ReplResolvConf )
119 {
120 resolv_renamed=1+rename(RESOLV_CONF,""RESOLV_CONF".sv");
121 diff -ru dhcpcd-1.3.22-pl4-orig/signals.c dhcpcd-1.3.22-pl4/signals.c
122 --- dhcpcd-1.3.22-pl4-orig/signals.c 2002-01-21 06:51:46.000000000 +0800
123 +++ dhcpcd-1.3.22-pl4/signals.c 2003-06-17 11:29:10.000000000 +0800
124 @@ -114,13 +114,15 @@
125 else
126 {
127 if ( sig == SIGHUP )
128 - {
129 - dhcpRelease();
130 - /* allow time for final packets to be transmitted before shutting down */
131 - /* otherwise 2.0 drops unsent packets. fixme: find a better way than sleep */
132 - sleep(1);
133 - }
134 - syslog(LOG_ERR,"terminating on signal %d\n",sig);
135 + /* Dhcp release with Cache file deletion */
136 + dhcpRelease(1);
137 + else if ( sig == SIGUSR1)
138 + /* Dhcp release without Cache file deletion */
139 + dhcpRelease(0);
140 + /* allow time for final packets to be transmitted before shutting down */
141 + /* otherwise 2.0 drops unsent packets. fixme: find a better way than sleep */
142 + sleep(1);
143 + syslog(LOG_ERR,"terminating on signal %d\n",sig);
144 }
145 dhcpStop();
146 deletePidFile();