4.3.1b1
This commit is contained in:
		
							parent
							
								
									6b7e125d8b
								
							
						
					
					
						commit
						7b69e548fb
					
				| @ -1,7 +1,7 @@ | |||||||
| diff -up dhcp-4.3.0a1/client/dhc6.c.PPP dhcp-4.3.0a1/client/dhc6.c
 | diff -up dhcp-4.3.1b1/client/dhc6.c.mRfpsB dhcp-4.3.1b1/client/dhc6.c
 | ||||||
| --- dhcp-4.3.0a1/client/dhc6.c.PPP	2013-12-19 16:16:45.925550229 +0100
 | --- dhcp-4.3.1b1/client/dhc6.c.mRfpsB	2014-07-10 17:48:03.779424870 +0200
 | ||||||
| +++ dhcp-4.3.0a1/client/dhc6.c	2013-12-19 16:16:45.930550159 +0100
 | +++ dhcp-4.3.1b1/client/dhc6.c	2014-07-10 17:48:03.795424644 +0200
 | ||||||
| @@ -5080,7 +5080,8 @@ make_client6_options(struct client_state
 | @@ -5088,7 +5088,8 @@ make_client6_options(struct client_state
 | ||||||
|  	 */ |  	 */ | ||||||
|  	if ((oc = lookup_option(&dhcpv6_universe, *op, |  	if ((oc = lookup_option(&dhcpv6_universe, *op, | ||||||
|  				D6O_CLIENTID)) == NULL) { |  				D6O_CLIENTID)) == NULL) { | ||||||
| @ -11,10 +11,10 @@ diff -up dhcp-4.3.0a1/client/dhc6.c.PPP dhcp-4.3.0a1/client/dhc6.c | |||||||
|  				  MDL)) |  				  MDL)) | ||||||
|  			log_fatal("Failure assembling a DUID."); |  			log_fatal("Failure assembling a DUID."); | ||||||
|   |   | ||||||
| diff -up dhcp-4.3.0a1/client/dhclient.c.PPP dhcp-4.3.0a1/client/dhclient.c
 | diff -up dhcp-4.3.1b1/client/dhclient.c.mRfpsB dhcp-4.3.1b1/client/dhclient.c
 | ||||||
| --- dhcp-4.3.0a1/client/dhclient.c.PPP	2013-12-19 16:16:45.932550131 +0100
 | --- dhcp-4.3.1b1/client/dhclient.c.mRfpsB	2014-07-10 17:39:25.853763858 +0200
 | ||||||
| +++ dhcp-4.3.0a1/client/dhclient.c	2013-12-19 16:27:38.334473958 +0100
 | +++ dhcp-4.3.1b1/client/dhclient.c	2014-07-10 17:49:49.882925843 +0200
 | ||||||
| @@ -926,8 +926,8 @@ main(int argc, char **argv) {
 | @@ -948,8 +948,8 @@ main(int argc, char **argv) {
 | ||||||
|  			if (default_duid.buffer != NULL) |  			if (default_duid.buffer != NULL) | ||||||
|  				data_string_forget(&default_duid, MDL); |  				data_string_forget(&default_duid, MDL); | ||||||
|   |   | ||||||
| @ -25,7 +25,7 @@ diff -up dhcp-4.3.0a1/client/dhclient.c.PPP dhcp-4.3.0a1/client/dhclient.c | |||||||
|  		} |  		} | ||||||
|  	} |  	} | ||||||
|   |   | ||||||
| @@ -3225,7 +3225,7 @@ write_options(struct client_state *clien
 | @@ -3267,7 +3267,7 @@ write_options(struct client_state *clien
 | ||||||
|   * is not how it is intended.  Upcoming rearchitecting the client should |   * is not how it is intended.  Upcoming rearchitecting the client should | ||||||
|   * address this "one daemon model." |   * address this "one daemon model." | ||||||
|   */ |   */ | ||||||
| @ -34,7 +34,7 @@ diff -up dhcp-4.3.0a1/client/dhclient.c.PPP dhcp-4.3.0a1/client/dhclient.c | |||||||
|  form_duid(struct data_string *duid, const char *file, int line) |  form_duid(struct data_string *duid, const char *file, int line) | ||||||
|  { |  { | ||||||
|  	struct interface_info *ip; |  	struct interface_info *ip; | ||||||
| @@ -3237,6 +3237,15 @@ form_duid(struct data_string *duid, cons
 | @@ -3280,6 +3280,15 @@ form_duid(struct data_string *duid, cons
 | ||||||
|  	if (ip == NULL) |  	if (ip == NULL) | ||||||
|  		log_fatal("Impossible condition at %s:%d.", MDL); |  		log_fatal("Impossible condition at %s:%d.", MDL); | ||||||
|   |   | ||||||
| @ -50,19 +50,19 @@ diff -up dhcp-4.3.0a1/client/dhclient.c.PPP dhcp-4.3.0a1/client/dhclient.c | |||||||
|  	if ((ip->hw_address.hlen == 0) || |  	if ((ip->hw_address.hlen == 0) || | ||||||
|  	    (ip->hw_address.hlen > sizeof(ip->hw_address.hbuf))) |  	    (ip->hw_address.hlen > sizeof(ip->hw_address.hbuf))) | ||||||
|  		log_fatal("Impossible hardware address length at %s:%d.", MDL); |  		log_fatal("Impossible hardware address length at %s:%d.", MDL); | ||||||
| @@ -3272,6 +3281,8 @@ form_duid(struct data_string *duid, cons
 | @@ -3323,6 +3332,8 @@ form_duid(struct data_string *duid, cons
 | ||||||
|  		memcpy(duid->buffer->data + 4, ip->hw_address.hbuf + 1, |  		log_info("Created duid %s.", str); | ||||||
|  		       ip->hw_address.hlen - 1); |  		dfree(str, MDL); | ||||||
|  	} |  	} | ||||||
| +	
 | +	
 | ||||||
| +	return ISC_R_SUCCESS;
 | +	return ISC_R_SUCCESS;
 | ||||||
|  } |  } | ||||||
|   |   | ||||||
|  /* Write the default DUID to the lease store. */ |  /* Write the default DUID to the lease store. */ | ||||||
| diff -up dhcp-4.3.0a1/common/bpf.c.PPP dhcp-4.3.0a1/common/bpf.c
 | diff -up dhcp-4.3.1b1/common/bpf.c.mRfpsB dhcp-4.3.1b1/common/bpf.c
 | ||||||
| --- dhcp-4.3.0a1/common/bpf.c.PPP	2013-12-19 16:16:45.868551024 +0100
 | --- dhcp-4.3.1b1/common/bpf.c.mRfpsB	2014-07-10 17:39:25.797764653 +0200
 | ||||||
| +++ dhcp-4.3.0a1/common/bpf.c	2013-12-19 16:16:45.934550103 +0100
 | +++ dhcp-4.3.1b1/common/bpf.c	2014-07-10 17:48:03.797424616 +0200
 | ||||||
| @@ -602,6 +602,22 @@ get_hw_addr(const char *name, struct har
 | @@ -600,6 +600,22 @@ get_hw_addr(const char *name, struct har
 | ||||||
|                          memcpy(&hw->hbuf[1], LLADDR(sa), sa->sdl_alen); |                          memcpy(&hw->hbuf[1], LLADDR(sa), sa->sdl_alen); | ||||||
|                          break; |                          break; | ||||||
|  #endif /* IFT_FDDI */ |  #endif /* IFT_FDDI */ | ||||||
| @ -85,9 +85,9 @@ diff -up dhcp-4.3.0a1/common/bpf.c.PPP dhcp-4.3.0a1/common/bpf.c | |||||||
|                  default: |                  default: | ||||||
|                          log_fatal("Unsupported device type %d for \"%s\"", |                          log_fatal("Unsupported device type %d for \"%s\"", | ||||||
|                                    sa->sdl_type, name); |                                    sa->sdl_type, name); | ||||||
| diff -up dhcp-4.3.0a1/common/lpf.c.PPP dhcp-4.3.0a1/common/lpf.c
 | diff -up dhcp-4.3.1b1/common/lpf.c.mRfpsB dhcp-4.3.1b1/common/lpf.c
 | ||||||
| --- dhcp-4.3.0a1/common/lpf.c.PPP	2013-12-19 16:16:45.848551303 +0100
 | --- dhcp-4.3.1b1/common/lpf.c.mRfpsB	2014-07-10 17:39:25.744765404 +0200
 | ||||||
| +++ dhcp-4.3.0a1/common/lpf.c	2013-12-19 16:16:45.934550103 +0100
 | +++ dhcp-4.3.1b1/common/lpf.c	2014-07-10 17:48:03.797424616 +0200
 | ||||||
| @@ -511,6 +511,22 @@ get_hw_addr(const char *name, struct har
 | @@ -511,6 +511,22 @@ get_hw_addr(const char *name, struct har
 | ||||||
|  			hw->hbuf[0] = HTYPE_FDDI; |  			hw->hbuf[0] = HTYPE_FDDI; | ||||||
|  			memcpy(&hw->hbuf[1], sa->sa_data, 6); |  			memcpy(&hw->hbuf[1], sa->sa_data, 6); | ||||||
| @ -111,22 +111,10 @@ diff -up dhcp-4.3.0a1/common/lpf.c.PPP dhcp-4.3.0a1/common/lpf.c | |||||||
|  		default: |  		default: | ||||||
|  			log_fatal("Unsupported device type %ld for \"%s\"", |  			log_fatal("Unsupported device type %ld for \"%s\"", | ||||||
|  				  (long int)sa->sa_family, name); |  				  (long int)sa->sa_family, name); | ||||||
| diff -up dhcp-4.3.0a1/includes/dhcp.h.PPP dhcp-4.3.0a1/includes/dhcp.h
 | diff -up dhcp-4.3.1b1/includes/dhcpd.h.mRfpsB dhcp-4.3.1b1/includes/dhcpd.h
 | ||||||
| --- dhcp-4.3.0a1/includes/dhcp.h.PPP	2013-12-19 16:16:45.919550313 +0100
 | --- dhcp-4.3.1b1/includes/dhcpd.h.mRfpsB	2014-07-10 17:48:03.761425124 +0200
 | ||||||
| +++ dhcp-4.3.0a1/includes/dhcp.h	2013-12-19 16:16:45.936550076 +0100
 | +++ dhcp-4.3.1b1/includes/dhcpd.h	2014-07-10 17:48:03.798424601 +0200
 | ||||||
| @@ -85,6 +85,8 @@ struct dhcp_packet {
 | @@ -2839,7 +2839,7 @@ void client_dns_remove(struct client_sta
 | ||||||
|  					 * is no standard for this so we |  | ||||||
|  					 * just steal a type            */ |  | ||||||
|   |  | ||||||
| +#define HTYPE_RESERVED	0		/* RFC 5494 */
 |  | ||||||
| +
 |  | ||||||
|  /* Magic cookie validating dhcp options field (and bootp vendor |  | ||||||
|     extensions field). */ |  | ||||||
|  #define DHCP_OPTIONS_COOKIE	"\143\202\123\143" |  | ||||||
| diff -up dhcp-4.3.0a1/includes/dhcpd.h.PPP dhcp-4.3.0a1/includes/dhcpd.h
 |  | ||||||
| --- dhcp-4.3.0a1/includes/dhcpd.h.PPP	2013-12-19 16:16:45.935550090 +0100
 |  | ||||||
| +++ dhcp-4.3.0a1/includes/dhcpd.h	2013-12-19 16:28:33.468709007 +0100
 |  | ||||||
| @@ -2824,7 +2824,7 @@ void client_dns_remove(struct client_sta
 |  | ||||||
|   |   | ||||||
|  void dhcpv4_client_assignments(void); |  void dhcpv4_client_assignments(void); | ||||||
|  void dhcpv6_client_assignments(void); |  void dhcpv6_client_assignments(void); | ||||||
| @ -135,10 +123,22 @@ diff -up dhcp-4.3.0a1/includes/dhcpd.h.PPP dhcp-4.3.0a1/includes/dhcpd.h | |||||||
|   |   | ||||||
|  /* dhc6.c */ |  /* dhc6.c */ | ||||||
|  void dhc6_lease_destroy(struct dhc6_lease **src, const char *file, int line); |  void dhc6_lease_destroy(struct dhc6_lease **src, const char *file, int line); | ||||||
| diff -up dhcp-4.3.0a1/server/dhcpv6.c.PPP dhcp-4.3.0a1/server/dhcpv6.c
 | diff -up dhcp-4.3.1b1/includes/dhcp.h.mRfpsB dhcp-4.3.1b1/includes/dhcp.h
 | ||||||
| --- dhcp-4.3.0a1/server/dhcpv6.c.PPP	2013-12-19 16:16:45.901550564 +0100
 | --- dhcp-4.3.1b1/includes/dhcp.h.mRfpsB	2014-07-10 17:48:03.761425124 +0200
 | ||||||
| +++ dhcp-4.3.0a1/server/dhcpv6.c	2013-12-19 16:16:45.937550062 +0100
 | +++ dhcp-4.3.1b1/includes/dhcp.h	2014-07-10 17:48:03.798424601 +0200
 | ||||||
| @@ -307,6 +307,9 @@ generate_new_server_duid(void) {
 | @@ -81,6 +81,8 @@ struct dhcp_packet {
 | ||||||
|  |  					 * is no standard for this so we | ||||||
|  |  					 * just steal a type            */ | ||||||
|  |   | ||||||
|  | +#define HTYPE_RESERVED	0		/* RFC 5494 */
 | ||||||
|  | +
 | ||||||
|  |  /* Magic cookie validating dhcp options field (and bootp vendor | ||||||
|  |     extensions field). */ | ||||||
|  |  #define DHCP_OPTIONS_COOKIE	"\143\202\123\143" | ||||||
|  | diff -up dhcp-4.3.1b1/server/dhcpv6.c.mRfpsB dhcp-4.3.1b1/server/dhcpv6.c
 | ||||||
|  | --- dhcp-4.3.1b1/server/dhcpv6.c.mRfpsB	2014-07-10 17:47:31.464881409 +0200
 | ||||||
|  | +++ dhcp-4.3.1b1/server/dhcpv6.c	2014-07-10 17:48:03.800424573 +0200
 | ||||||
|  | @@ -330,6 +330,9 @@ generate_new_server_duid(void) {
 | ||||||
|  		if (p->hw_address.hlen > 0) { |  		if (p->hw_address.hlen > 0) { | ||||||
|  			break; |  			break; | ||||||
|  		} |  		} | ||||||
|  | |||||||
| @ -1,7 +1,7 @@ | |||||||
| diff -up dhcp-4.3.0a1/server/dhcpv6.c.UseMulticast dhcp-4.3.0a1/server/dhcpv6.c
 | diff -up dhcp-4.3.1b1/server/dhcpv6.c.UseMulticast dhcp-4.3.1b1/server/dhcpv6.c
 | ||||||
| --- dhcp-4.3.0a1/server/dhcpv6.c.UseMulticast	2013-12-11 01:25:12.000000000 +0100
 | --- dhcp-4.3.1b1/server/dhcpv6.c.UseMulticast	2014-07-02 19:58:40.000000000 +0200
 | ||||||
| +++ dhcp-4.3.0a1/server/dhcpv6.c	2013-12-19 15:54:46.934932371 +0100
 | +++ dhcp-4.3.1b1/server/dhcpv6.c	2014-07-10 18:20:03.066256219 +0200
 | ||||||
| @@ -353,6 +353,48 @@ generate_new_server_duid(void) {
 | @@ -376,6 +376,48 @@ generate_new_server_duid(void) {
 | ||||||
|  } |  } | ||||||
|   |   | ||||||
|  /* |  /* | ||||||
| @ -50,7 +50,20 @@ diff -up dhcp-4.3.0a1/server/dhcpv6.c.UseMulticast dhcp-4.3.0a1/server/dhcpv6.c | |||||||
|   * Get the client identifier from the packet. |   * Get the client identifier from the packet. | ||||||
|   */ |   */ | ||||||
|  isc_result_t |  isc_result_t | ||||||
| @@ -1498,6 +1540,56 @@ lease_to_client(struct data_string *repl
 | @@ -706,6 +748,12 @@ static const int required_opts[] = {
 | ||||||
|  |  	D6O_PREFERENCE, | ||||||
|  |  	0 | ||||||
|  |  }; | ||||||
|  | +static const int required_opts_NAA[] = {
 | ||||||
|  | +	D6O_CLIENTID,
 | ||||||
|  | +	D6O_SERVERID,
 | ||||||
|  | +	D6O_STATUS_CODE,
 | ||||||
|  | +	0
 | ||||||
|  | +};
 | ||||||
|  |  static const int required_opts_solicit[] = { | ||||||
|  |  	D6O_CLIENTID, | ||||||
|  |  	D6O_SERVERID, | ||||||
|  | @@ -1587,6 +1635,56 @@ lease_to_client(struct data_string *repl
 | ||||||
|  						    reply.shared->group, NULL); |  						    reply.shared->group, NULL); | ||||||
|  	} |  	} | ||||||
|   |   | ||||||
| @ -107,18 +120,7 @@ diff -up dhcp-4.3.0a1/server/dhcpv6.c.UseMulticast dhcp-4.3.0a1/server/dhcpv6.c | |||||||
|  	/* |  	/* | ||||||
|  	 * RFC3315 section 17.2.2 (Solicit): |  	 * RFC3315 section 17.2.2 (Solicit): | ||||||
|  	 * |  	 * | ||||||
| @@ -1523,8 +1615,8 @@ lease_to_client(struct data_string *repl
 | @@ -1619,6 +1717,7 @@ lease_to_client(struct data_string *repl
 | ||||||
|  	 * Sends a Renew/Rebind if the IA is not in the Reply message. |  | ||||||
|  	 */ |  | ||||||
|  #if defined (RFC3315_PRE_ERRATA_2010_08) |  | ||||||
| -	if (no_resources_avail && (reply.ia_count != 0) &&
 |  | ||||||
| -	    (reply.packet->dhcpv6_msg_type == DHCPV6_SOLICIT))
 |  | ||||||
| +	else if (no_resources_avail && (reply.ia_count != 0) &&
 |  | ||||||
| +		 (reply.packet->dhcpv6_msg_type == DHCPV6_SOLICIT))
 |  | ||||||
|  	{ |  | ||||||
|  		/* Set the NoAddrsAvail status code. */ |  | ||||||
|  		if (!set_status_code(STATUS_NoAddrsAvail, |  | ||||||
| @@ -1571,6 +1663,7 @@ lease_to_client(struct data_string *repl
 |  | ||||||
|  	 * Having stored the client's IA's, store any options that |  	 * Having stored the client's IA's, store any options that | ||||||
|  	 * will fit in the remaining space. |  	 * will fit in the remaining space. | ||||||
|  	 */ |  	 */ | ||||||
| @ -126,7 +128,7 @@ diff -up dhcp-4.3.0a1/server/dhcpv6.c.UseMulticast dhcp-4.3.0a1/server/dhcpv6.c | |||||||
|  	reply.cursor += store_options6((char *)reply.buf.data + reply.cursor, |  	reply.cursor += store_options6((char *)reply.buf.data + reply.cursor, | ||||||
|  				       sizeof(reply.buf) - reply.cursor, |  				       sizeof(reply.buf) - reply.cursor, | ||||||
|  				       reply.opt_state, reply.packet, |  				       reply.opt_state, reply.packet, | ||||||
| @@ -4688,7 +4781,6 @@ dhcpv6_solicit(struct data_string *reply
 | @@ -4748,7 +4847,6 @@ dhcpv6_solicit(struct data_string *reply
 | ||||||
|   * Very similar to Solicit handling, except the server DUID is required. |   * Very similar to Solicit handling, except the server DUID is required. | ||||||
|   */ |   */ | ||||||
|   |   | ||||||
| @ -134,7 +136,7 @@ diff -up dhcp-4.3.0a1/server/dhcpv6.c.UseMulticast dhcp-4.3.0a1/server/dhcpv6.c | |||||||
|  static void |  static void | ||||||
|  dhcpv6_request(struct data_string *reply_ret, struct packet *packet) { |  dhcpv6_request(struct data_string *reply_ret, struct packet *packet) { | ||||||
|  	struct data_string client_id; |  	struct data_string client_id; | ||||||
| @@ -5018,7 +5110,6 @@ exit:
 | @@ -5078,7 +5176,6 @@ exit:
 | ||||||
|   * except for the error code of when addresses don't match. |   * except for the error code of when addresses don't match. | ||||||
|   */ |   */ | ||||||
|   |   | ||||||
| @ -142,7 +144,7 @@ diff -up dhcp-4.3.0a1/server/dhcpv6.c.UseMulticast dhcp-4.3.0a1/server/dhcpv6.c | |||||||
|  static void |  static void | ||||||
|  dhcpv6_renew(struct data_string *reply, struct packet *packet) { |  dhcpv6_renew(struct data_string *reply, struct packet *packet) { | ||||||
|  	struct data_string client_id; |  	struct data_string client_id; | ||||||
| @@ -5262,18 +5353,60 @@ iterate_over_ia_na(struct data_string *r
 | @@ -5322,18 +5419,60 @@ iterate_over_ia_na(struct data_string *r
 | ||||||
|  		goto exit; |  		goto exit; | ||||||
|  	} |  	} | ||||||
|   |   | ||||||
| @ -213,7 +215,7 @@ diff -up dhcp-4.3.0a1/server/dhcpv6.c.UseMulticast dhcp-4.3.0a1/server/dhcpv6.c | |||||||
|   |   | ||||||
|  	/* |  	/* | ||||||
|  	 * Loop through the IA_NA reported by the client, and deal with |  	 * Loop through the IA_NA reported by the client, and deal with | ||||||
| @@ -5411,6 +5544,7 @@ iterate_over_ia_na(struct data_string *r
 | @@ -5471,6 +5610,7 @@ iterate_over_ia_na(struct data_string *r
 | ||||||
|  	/*  |  	/*  | ||||||
|  	 * Return our reply to the caller. |  	 * Return our reply to the caller. | ||||||
|  	 */ |  	 */ | ||||||
| @ -221,7 +223,7 @@ diff -up dhcp-4.3.0a1/server/dhcpv6.c.UseMulticast dhcp-4.3.0a1/server/dhcpv6.c | |||||||
|  	reply_ret->len = reply_ofs; |  	reply_ret->len = reply_ofs; | ||||||
|  	reply_ret->buffer = NULL; |  	reply_ret->buffer = NULL; | ||||||
|  	if (!buffer_allocate(&reply_ret->buffer, reply_ofs, MDL)) { |  	if (!buffer_allocate(&reply_ret->buffer, reply_ofs, MDL)) { | ||||||
| @@ -5456,7 +5590,6 @@ exit:
 | @@ -5516,7 +5656,6 @@ exit:
 | ||||||
|   * we still need to be aware of this possibility. |   * we still need to be aware of this possibility. | ||||||
|   */ |   */ | ||||||
|   |   | ||||||
| @ -229,7 +231,7 @@ diff -up dhcp-4.3.0a1/server/dhcpv6.c.UseMulticast dhcp-4.3.0a1/server/dhcpv6.c | |||||||
|  /* TODO: IA_TA */ |  /* TODO: IA_TA */ | ||||||
|  static void |  static void | ||||||
|  dhcpv6_decline(struct data_string *reply, struct packet *packet) { |  dhcpv6_decline(struct data_string *reply, struct packet *packet) { | ||||||
| @@ -5926,7 +6059,6 @@ exit:
 | @@ -5986,7 +6125,6 @@ exit:
 | ||||||
|   * Release means a client is done with the leases. |   * Release means a client is done with the leases. | ||||||
|   */ |   */ | ||||||
|   |   | ||||||
|  | |||||||
| @ -1,39 +1,7 @@ | |||||||
| diff -up dhcp-4.3.0a1/client/Makefile.am.capability dhcp-4.3.0a1/client/Makefile.am
 | diff -up dhcp-4.3.1b1/client/dhclient.8.zzftXp dhcp-4.3.1b1/client/dhclient.8
 | ||||||
| --- dhcp-4.3.0a1/client/Makefile.am.capability	2013-12-19 16:15:26.549657115 +0100
 | --- dhcp-4.3.1b1/client/dhclient.8.zzftXp	2014-07-10 17:38:26.938599402 +0200
 | ||||||
| +++ dhcp-4.3.0a1/client/Makefile.am	2013-12-19 16:16:04.126133091 +0100
 | +++ dhcp-4.3.1b1/client/dhclient.8	2014-07-10 17:39:25.852763873 +0200
 | ||||||
| @@ -4,7 +4,7 @@ dhclient_SOURCES = clparse.c dhclient.c
 | @@ -128,6 +128,9 @@ dhclient - Dynamic Host Configuration Pr
 | ||||||
|  		   scripts/bsdos scripts/freebsd scripts/linux scripts/macos \ |  | ||||||
|  		   scripts/netbsd scripts/nextstep scripts/openbsd \ |  | ||||||
|  		   scripts/solaris scripts/openwrt |  | ||||||
| -dhclient_LDADD = ../common/libdhcp.a ../omapip/libomapi.la \
 |  | ||||||
| +dhclient_LDADD = ../common/libdhcp.a ../omapip/libomapi.la $(CAPNG_LDADD) \
 |  | ||||||
|  		 $(BIND9_LIBDIR) -lirs-export -ldns-export -lisccfg-export -lisc-export |  | ||||||
|  man_MANS = dhclient.8 dhclient-script.8 dhclient.conf.5 dhclient.leases.5 |  | ||||||
|  EXTRA_DIST = $(man_MANS) |  | ||||||
| diff -up dhcp-4.3.0a1/client/dhclient-script.8.capability dhcp-4.3.0a1/client/dhclient-script.8
 |  | ||||||
| --- dhcp-4.3.0a1/client/dhclient-script.8.capability	2013-12-19 16:15:26.520657520 +0100
 |  | ||||||
| +++ dhcp-4.3.0a1/client/dhclient-script.8	2013-12-19 16:15:26.549657115 +0100
 |  | ||||||
| @@ -246,6 +246,16 @@ repeatedly initialized to the values pro
 |  | ||||||
|  the other.   Assuming the information provided by both servers is |  | ||||||
|  valid, this shouldn't cause any real problems, but it could be |  | ||||||
|  confusing. |  | ||||||
| +.PP
 |  | ||||||
| +Normally, if dhclient was compiled with libcap-ng support,
 |  | ||||||
| +dhclient drops most capabilities immediately upon startup.
 |  | ||||||
| +While more secure, this greatly restricts the additional actions that
 |  | ||||||
| +hooks in dhclient-script can take. For example, any daemons that
 |  | ||||||
| +dhclient-script starts or restarts will inherit the restricted
 |  | ||||||
| +capabilities as well, which may interfere with their correct operation.
 |  | ||||||
| +Thus, the
 |  | ||||||
| +.BI \-nc
 |  | ||||||
| +option can be used to prevent dhclient from dropping capabilities.
 |  | ||||||
|  .SH SEE ALSO |  | ||||||
|  dhclient(8), dhcpd(8), dhcrelay(8), dhclient.conf(5) and |  | ||||||
|  dhclient.leases(5). |  | ||||||
| diff -up dhcp-4.3.0a1/client/dhclient.8.capability dhcp-4.3.0a1/client/dhclient.8
 |  | ||||||
| --- dhcp-4.3.0a1/client/dhclient.8.capability	2013-12-19 16:15:26.482658050 +0100
 |  | ||||||
| +++ dhcp-4.3.0a1/client/dhclient.8	2013-12-19 16:15:26.550657101 +0100
 |  | ||||||
| @@ -124,6 +124,9 @@ dhclient - Dynamic Host Configuration Pr
 |  | ||||||
|  .B -w |  .B -w | ||||||
|  ] |  ] | ||||||
|  [ |  [ | ||||||
| @ -43,7 +11,7 @@ diff -up dhcp-4.3.0a1/client/dhclient.8.capability dhcp-4.3.0a1/client/dhclient. | |||||||
|  .B -B |  .B -B | ||||||
|  ] |  ] | ||||||
|  [ |  [ | ||||||
| @@ -300,6 +303,32 @@ has been added or removed, so that the c
 | @@ -304,6 +307,32 @@ has been added or removed, so that the c
 | ||||||
|  address on that interface. |  address on that interface. | ||||||
|   |   | ||||||
|  .TP |  .TP | ||||||
| @ -76,9 +44,9 @@ diff -up dhcp-4.3.0a1/client/dhclient.8.capability dhcp-4.3.0a1/client/dhclient. | |||||||
|  .BI \-B |  .BI \-B | ||||||
|  Set the BOOTP broadcast flag in request packets so servers will always |  Set the BOOTP broadcast flag in request packets so servers will always | ||||||
|  broadcast replies. |  broadcast replies. | ||||||
| diff -up dhcp-4.3.0a1/client/dhclient.c.capability dhcp-4.3.0a1/client/dhclient.c
 | diff -up dhcp-4.3.1b1/client/dhclient.c.zzftXp dhcp-4.3.1b1/client/dhclient.c
 | ||||||
| --- dhcp-4.3.0a1/client/dhclient.c.capability	2013-12-19 16:15:26.532657352 +0100
 | --- dhcp-4.3.1b1/client/dhclient.c.zzftXp	2014-07-10 17:39:25.797764653 +0200
 | ||||||
| +++ dhcp-4.3.0a1/client/dhclient.c	2013-12-19 16:15:26.551657087 +0100
 | +++ dhcp-4.3.1b1/client/dhclient.c	2014-07-10 17:39:25.853763858 +0200
 | ||||||
| @@ -39,6 +39,10 @@
 | @@ -39,6 +39,10 @@
 | ||||||
|  #include <limits.h> |  #include <limits.h> | ||||||
|  #include <dns/result.h> |  #include <dns/result.h> | ||||||
| @ -90,7 +58,7 @@ diff -up dhcp-4.3.0a1/client/dhclient.c.capability dhcp-4.3.0a1/client/dhclient. | |||||||
|  /* |  /* | ||||||
|   * Defined in stdio.h when _GNU_SOURCE is set, but we don't want to define |   * Defined in stdio.h when _GNU_SOURCE is set, but we don't want to define | ||||||
|   * that when building ISC code. |   * that when building ISC code. | ||||||
| @@ -141,6 +145,9 @@ main(int argc, char **argv) {
 | @@ -143,6 +147,9 @@ main(int argc, char **argv) {
 | ||||||
|  	int timeout_arg = 0; |  	int timeout_arg = 0; | ||||||
|  	char *arg_conf = NULL; |  	char *arg_conf = NULL; | ||||||
|  	int arg_conf_len = 0; |  	int arg_conf_len = 0; | ||||||
| @ -100,7 +68,7 @@ diff -up dhcp-4.3.0a1/client/dhclient.c.capability dhcp-4.3.0a1/client/dhclient. | |||||||
|   |   | ||||||
|  	/* Initialize client globals. */ |  	/* Initialize client globals. */ | ||||||
|  	memset(&default_duid, 0, sizeof(default_duid)); |  	memset(&default_duid, 0, sizeof(default_duid)); | ||||||
| @@ -413,6 +420,10 @@ main(int argc, char **argv) {
 | @@ -425,6 +432,10 @@ main(int argc, char **argv) {
 | ||||||
|  			} |  			} | ||||||
|   |   | ||||||
|  			dhclient_request_options = argv[i]; |  			dhclient_request_options = argv[i]; | ||||||
| @ -111,7 +79,7 @@ diff -up dhcp-4.3.0a1/client/dhclient.c.capability dhcp-4.3.0a1/client/dhclient. | |||||||
|  		} else if (argv[i][0] == '-') { |  		} else if (argv[i][0] == '-') { | ||||||
|  		    usage(); |  		    usage(); | ||||||
|  		} else if (interfaces_requested < 0) { |  		} else if (interfaces_requested < 0) { | ||||||
| @@ -461,6 +472,19 @@ main(int argc, char **argv) {
 | @@ -473,6 +484,19 @@ main(int argc, char **argv) {
 | ||||||
|  		path_dhclient_script = s; |  		path_dhclient_script = s; | ||||||
|  	} |  	} | ||||||
|   |   | ||||||
| @ -131,10 +99,42 @@ diff -up dhcp-4.3.0a1/client/dhclient.c.capability dhcp-4.3.0a1/client/dhclient. | |||||||
|  	/* Set up the initial dhcp option universe. */ |  	/* Set up the initial dhcp option universe. */ | ||||||
|  	initialize_common_option_spaces(); |  	initialize_common_option_spaces(); | ||||||
|   |   | ||||||
| diff -up dhcp-4.3.0a1/configure.ac.capability dhcp-4.3.0a1/configure.ac
 | diff -up dhcp-4.3.1b1/client/dhclient-script.8.zzftXp dhcp-4.3.1b1/client/dhclient-script.8
 | ||||||
| --- dhcp-4.3.0a1/configure.ac.capability	2013-12-19 16:15:26.475658147 +0100
 | --- dhcp-4.3.1b1/client/dhclient-script.8.zzftXp	2014-07-10 17:39:25.761765163 +0200
 | ||||||
| +++ dhcp-4.3.0a1/configure.ac	2013-12-19 16:15:26.552657074 +0100
 | +++ dhcp-4.3.1b1/client/dhclient-script.8	2014-07-10 17:39:25.851763887 +0200
 | ||||||
| @@ -489,6 +489,41 @@ AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[]],
 | @@ -243,6 +243,16 @@ repeatedly initialized to the values pro
 | ||||||
|  |  the other.   Assuming the information provided by both servers is | ||||||
|  |  valid, this shouldn't cause any real problems, but it could be | ||||||
|  |  confusing. | ||||||
|  | +.PP
 | ||||||
|  | +Normally, if dhclient was compiled with libcap-ng support,
 | ||||||
|  | +dhclient drops most capabilities immediately upon startup.
 | ||||||
|  | +While more secure, this greatly restricts the additional actions that
 | ||||||
|  | +hooks in dhclient-script can take. For example, any daemons that
 | ||||||
|  | +dhclient-script starts or restarts will inherit the restricted
 | ||||||
|  | +capabilities as well, which may interfere with their correct operation.
 | ||||||
|  | +Thus, the
 | ||||||
|  | +.BI \-nc
 | ||||||
|  | +option can be used to prevent dhclient from dropping capabilities.
 | ||||||
|  |  .SH SEE ALSO | ||||||
|  |  dhclient(8), dhcpd(8), dhcrelay(8), dhclient.conf(5) and | ||||||
|  |  dhclient.leases(5). | ||||||
|  | diff -up dhcp-4.3.1b1/client/Makefile.am.zzftXp dhcp-4.3.1b1/client/Makefile.am
 | ||||||
|  | --- dhcp-4.3.1b1/client/Makefile.am.zzftXp	2014-07-10 17:38:10.778828583 +0200
 | ||||||
|  | +++ dhcp-4.3.1b1/client/Makefile.am	2014-07-10 17:39:25.851763887 +0200
 | ||||||
|  | @@ -10,7 +10,7 @@ dhclient_SOURCES = clparse.c dhclient.c
 | ||||||
|  |  		   scripts/bsdos scripts/freebsd scripts/linux scripts/macos \ | ||||||
|  |  		   scripts/netbsd scripts/nextstep scripts/openbsd \ | ||||||
|  |  		   scripts/solaris scripts/openwrt | ||||||
|  | -dhclient_LDADD = ../common/libdhcp.a ../omapip/libomapi.la \
 | ||||||
|  | +dhclient_LDADD = ../common/libdhcp.a ../omapip/libomapi.la $(CAPNG_LDADD) \
 | ||||||
|  |  		 $(BIND9_LIBDIR) -lirs-export -ldns-export -lisccfg-export -lisc-export | ||||||
|  |  man_MANS = dhclient.8 dhclient-script.8 dhclient.conf.5 dhclient.leases.5 | ||||||
|  |  EXTRA_DIST = $(man_MANS) | ||||||
|  | diff -up dhcp-4.3.1b1/configure.ac.zzftXp dhcp-4.3.1b1/configure.ac
 | ||||||
|  | --- dhcp-4.3.1b1/configure.ac.zzftXp	2014-07-10 17:38:10.779828569 +0200
 | ||||||
|  | +++ dhcp-4.3.1b1/configure.ac	2014-07-10 17:39:25.854763844 +0200
 | ||||||
|  | @@ -499,6 +499,41 @@ AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[]],
 | ||||||
|  # Look for optional headers. |  # Look for optional headers. | ||||||
|  AC_CHECK_HEADERS(sys/socket.h net/if_dl.h net/if6.h regex.h) |  AC_CHECK_HEADERS(sys/socket.h net/if_dl.h net/if6.h regex.h) | ||||||
|   |   | ||||||
| @ -176,22 +176,10 @@ diff -up dhcp-4.3.0a1/configure.ac.capability dhcp-4.3.0a1/configure.ac | |||||||
|  # Solaris needs some libraries for functions |  # Solaris needs some libraries for functions | ||||||
|  AC_SEARCH_LIBS(socket, [socket]) |  AC_SEARCH_LIBS(socket, [socket]) | ||||||
|  AC_SEARCH_LIBS(inet_ntoa, [nsl]) |  AC_SEARCH_LIBS(inet_ntoa, [nsl]) | ||||||
| diff -up dhcp-4.3.0a1/relay/Makefile.am.capability dhcp-4.3.0a1/relay/Makefile.am
 | diff -up dhcp-4.3.1b1/relay/dhcrelay.c.zzftXp dhcp-4.3.1b1/relay/dhcrelay.c
 | ||||||
| --- dhcp-4.3.0a1/relay/Makefile.am.capability	2013-12-19 16:15:26.552657074 +0100
 | --- dhcp-4.3.1b1/relay/dhcrelay.c.zzftXp	2014-07-10 17:39:25.799764624 +0200
 | ||||||
| +++ dhcp-4.3.0a1/relay/Makefile.am	2013-12-19 16:16:26.159825841 +0100
 | +++ dhcp-4.3.1b1/relay/dhcrelay.c	2014-07-10 17:40:19.191007421 +0200
 | ||||||
| @@ -2,7 +2,7 @@ AM_CPPFLAGS = -DLOCALSTATEDIR='"@localst
 | @@ -31,6 +31,11 @@
 | ||||||
|   |  | ||||||
|  sbin_PROGRAMS = dhcrelay |  | ||||||
|  dhcrelay_SOURCES = dhcrelay.c |  | ||||||
| -dhcrelay_LDADD = ../common/libdhcp.a ../omapip/libomapi.la \
 |  | ||||||
| +dhcrelay_LDADD = ../common/libdhcp.a ../omapip/libomapi.la $(CAPNG_LDADD) \
 |  | ||||||
|  		 $(BIND9_LIBDIR) -lirs-export -ldns-export -lisccfg-export -lisc-export |  | ||||||
|  man_MANS = dhcrelay.8 |  | ||||||
|  EXTRA_DIST = $(man_MANS) |  | ||||||
| diff -up dhcp-4.3.0a1/relay/dhcrelay.c.capability dhcp-4.3.0a1/relay/dhcrelay.c
 |  | ||||||
| --- dhcp-4.3.0a1/relay/dhcrelay.c.capability	2013-12-19 16:15:26.535657311 +0100
 |  | ||||||
| +++ dhcp-4.3.0a1/relay/dhcrelay.c	2013-12-19 16:15:26.553657060 +0100
 |  | ||||||
| @@ -37,6 +37,11 @@
 |  | ||||||
|  #include <signal.h> |  #include <signal.h> | ||||||
|  #include <sys/time.h> |  #include <sys/time.h> | ||||||
|   |   | ||||||
| @ -203,7 +191,7 @@ diff -up dhcp-4.3.0a1/relay/dhcrelay.c.capability dhcp-4.3.0a1/relay/dhcrelay.c | |||||||
|  TIME default_lease_time = 43200; /* 12 hours... */ |  TIME default_lease_time = 43200; /* 12 hours... */ | ||||||
|  TIME max_lease_time = 86400; /* 24 hours... */ |  TIME max_lease_time = 86400; /* 24 hours... */ | ||||||
|  struct tree_cache *global_options[256]; |  struct tree_cache *global_options[256]; | ||||||
| @@ -382,6 +387,10 @@ main(int argc, char **argv) {
 | @@ -376,6 +381,10 @@ main(int argc, char **argv) {
 | ||||||
|  				usage(); |  				usage(); | ||||||
|  			dhcrelay_sub_id = argv[i]; |  			dhcrelay_sub_id = argv[i]; | ||||||
|  #endif |  #endif | ||||||
| @ -214,7 +202,7 @@ diff -up dhcp-4.3.0a1/relay/dhcrelay.c.capability dhcp-4.3.0a1/relay/dhcrelay.c | |||||||
|  		} else if (!strcmp(argv[i], "-pf")) { |  		} else if (!strcmp(argv[i], "-pf")) { | ||||||
|  			if (++i == argc) |  			if (++i == argc) | ||||||
|  				usage(); |  				usage(); | ||||||
| @@ -452,6 +461,17 @@ main(int argc, char **argv) {
 | @@ -446,6 +455,17 @@ main(int argc, char **argv) {
 | ||||||
|  #endif |  #endif | ||||||
|  	} |  	} | ||||||
|   |   | ||||||
| @ -232,9 +220,9 @@ diff -up dhcp-4.3.0a1/relay/dhcrelay.c.capability dhcp-4.3.0a1/relay/dhcrelay.c | |||||||
|  	if (!quiet) { |  	if (!quiet) { | ||||||
|  		log_info("%s %s", message, PACKAGE_VERSION); |  		log_info("%s %s", message, PACKAGE_VERSION); | ||||||
|  		log_info(copyright); |  		log_info(copyright); | ||||||
| @@ -601,6 +621,15 @@ main(int argc, char **argv) {
 | @@ -598,6 +618,15 @@ main(int argc, char **argv) {
 | ||||||
|  	signal(SIGINT, dhcp_signal_handler);   /* control-c */ |  | ||||||
|  	signal(SIGTERM, dhcp_signal_handler);  /* kill */ |  	signal(SIGTERM, dhcp_signal_handler);  /* kill */ | ||||||
|  |  #endif | ||||||
|   |   | ||||||
| +#ifdef HAVE_LIBCAP_NG
 | +#ifdef HAVE_LIBCAP_NG
 | ||||||
| +	/* Drop all capabilities */
 | +	/* Drop all capabilities */
 | ||||||
| @ -248,3 +236,15 @@ diff -up dhcp-4.3.0a1/relay/dhcrelay.c.capability dhcp-4.3.0a1/relay/dhcrelay.c | |||||||
|  	/* Start dispatching packets and timeouts... */ |  	/* Start dispatching packets and timeouts... */ | ||||||
|  	dispatch(); |  	dispatch(); | ||||||
|   |   | ||||||
|  | diff -up dhcp-4.3.1b1/relay/Makefile.am.zzftXp dhcp-4.3.1b1/relay/Makefile.am
 | ||||||
|  | --- dhcp-4.3.1b1/relay/Makefile.am.zzftXp	2014-07-10 17:38:10.780828554 +0200
 | ||||||
|  | +++ dhcp-4.3.1b1/relay/Makefile.am	2014-07-10 17:39:25.854763844 +0200
 | ||||||
|  | @@ -2,7 +2,7 @@ AM_CPPFLAGS = -DLOCALSTATEDIR='"@localst
 | ||||||
|  |   | ||||||
|  |  sbin_PROGRAMS = dhcrelay | ||||||
|  |  dhcrelay_SOURCES = dhcrelay.c | ||||||
|  | -dhcrelay_LDADD = ../common/libdhcp.a ../omapip/libomapi.la \
 | ||||||
|  | +dhcrelay_LDADD = ../common/libdhcp.a ../omapip/libomapi.la $(CAPNG_LDADD) \
 | ||||||
|  |  		 $(BIND9_LIBDIR) -lirs-export -ldns-export -lisccfg-export -lisc-export | ||||||
|  |  man_MANS = dhcrelay.8 | ||||||
|  |  EXTRA_DIST = $(man_MANS) | ||||||
|  | |||||||
| @ -1,12 +0,0 @@ | |||||||
| diff -up dhcp-4.3.0a1/common/conflex.c.forward-updates dhcp-4.3.0a1/common/conflex.c
 |  | ||||||
| --- dhcp-4.3.0a1/common/conflex.c.forward-updates	2013-12-20 13:52:11.315466686 +0100
 |  | ||||||
| +++ dhcp-4.3.0a1/common/conflex.c	2013-12-20 13:52:11.492464218 +0100
 |  | ||||||
| @@ -896,7 +896,7 @@ intern(char *atom, enum dhcp_token dfv)
 |  | ||||||
|  			if (!strcasecmp(atom + 7, "list")) |  | ||||||
|  				return DOMAIN_LIST; |  | ||||||
|  		} |  | ||||||
| -		if (!strcasecmp (atom + 1, "o-forward-update"))
 |  | ||||||
| +		if (!strcasecmp (atom + 1, "o-forward-updates"))
 |  | ||||||
|  			return DO_FORWARD_UPDATE; |  | ||||||
|  		if (!strcasecmp (atom + 1, "ebug")) |  | ||||||
|  			return TOKEN_DEBUG; |  | ||||||
| @ -1,7 +1,7 @@ | |||||||
| diff -up dhcp-4.3.0a1/client/dhclient.c.backoff dhcp-4.3.0a1/client/dhclient.c
 | diff -up dhcp-4.3.1b1/client/dhclient.c.JwFUZj dhcp-4.3.1b1/client/dhclient.c
 | ||||||
| --- dhcp-4.3.0a1/client/dhclient.c.backoff	2013-12-19 15:11:11.310534716 +0100
 | --- dhcp-4.3.1b1/client/dhclient.c.JwFUZj	2014-07-10 17:38:50.511265091 +0200
 | ||||||
| +++ dhcp-4.3.0a1/client/dhclient.c	2013-12-19 15:11:11.315534646 +0100
 | +++ dhcp-4.3.1b1/client/dhclient.c	2014-07-10 17:39:16.164901267 +0200
 | ||||||
| @@ -1250,6 +1250,8 @@ void state_init (cpp)
 | @@ -1281,6 +1281,8 @@ void state_init (cpp)
 | ||||||
|  	void *cpp; |  	void *cpp; | ||||||
|  { |  { | ||||||
|  	struct client_state *client = cpp; |  	struct client_state *client = cpp; | ||||||
| @ -10,7 +10,7 @@ diff -up dhcp-4.3.0a1/client/dhclient.c.backoff dhcp-4.3.0a1/client/dhclient.c | |||||||
|   |   | ||||||
|  	ASSERT_STATE(state, S_INIT); |  	ASSERT_STATE(state, S_INIT); | ||||||
|   |   | ||||||
| @@ -1262,9 +1264,18 @@ void state_init (cpp)
 | @@ -1293,9 +1295,18 @@ void state_init (cpp)
 | ||||||
|  	client -> first_sending = cur_time; |  	client -> first_sending = cur_time; | ||||||
|  	client -> interval = client -> config -> initial_interval; |  	client -> interval = client -> config -> initial_interval; | ||||||
|   |   | ||||||
| @ -32,15 +32,15 @@ diff -up dhcp-4.3.0a1/client/dhclient.c.backoff dhcp-4.3.0a1/client/dhclient.c | |||||||
|  } |  } | ||||||
|   |   | ||||||
|  /* |  /* | ||||||
| @@ -1557,6 +1568,7 @@ void bind_lease (client)
 | @@ -1592,6 +1603,7 @@ void bind_lease (client)
 | ||||||
|  		send_decline (client); |  					 "try (declined).  Exiting."); | ||||||
|  		destroy_client_lease (client -> new); |  			exit(2); | ||||||
|  		client -> new = (struct client_lease *)0; |  		} else { | ||||||
| +		client -> state = S_DECLINED;
 | +			client -> state = S_DECLINED;
 | ||||||
|  		state_init (client); |  			state_init(client); | ||||||
|  		return; |  			return; | ||||||
|  	} |  		} | ||||||
| @@ -4001,6 +4013,7 @@ void client_location_changed ()
 | @@ -4059,6 +4071,7 @@ void client_location_changed ()
 | ||||||
|  			      case S_INIT: |  			      case S_INIT: | ||||||
|  			      case S_REBINDING: |  			      case S_REBINDING: | ||||||
|  			      case S_STOPPED: |  			      case S_STOPPED: | ||||||
| @ -48,10 +48,10 @@ diff -up dhcp-4.3.0a1/client/dhclient.c.backoff dhcp-4.3.0a1/client/dhclient.c | |||||||
|  				break; |  				break; | ||||||
|  			} |  			} | ||||||
|  			client -> state = S_INIT; |  			client -> state = S_INIT; | ||||||
| diff -up dhcp-4.3.0a1/includes/dhcpd.h.backoff dhcp-4.3.0a1/includes/dhcpd.h
 | diff -up dhcp-4.3.1b1/includes/dhcpd.h.JwFUZj dhcp-4.3.1b1/includes/dhcpd.h
 | ||||||
| --- dhcp-4.3.0a1/includes/dhcpd.h.backoff	2013-12-19 15:11:11.305534786 +0100
 | --- dhcp-4.3.1b1/includes/dhcpd.h.JwFUZj	2014-07-10 17:38:26.941599360 +0200
 | ||||||
| +++ dhcp-4.3.0a1/includes/dhcpd.h	2013-12-19 15:11:11.316534632 +0100
 | +++ dhcp-4.3.1b1/includes/dhcpd.h	2014-07-10 17:38:50.526264878 +0200
 | ||||||
| @@ -1088,7 +1088,8 @@ enum dhcp_state {
 | @@ -1087,7 +1087,8 @@ enum dhcp_state {
 | ||||||
|  	S_BOUND = 5, |  	S_BOUND = 5, | ||||||
|  	S_RENEWING = 6, |  	S_RENEWING = 6, | ||||||
|  	S_REBINDING = 7, |  	S_REBINDING = 7, | ||||||
|  | |||||||
| @ -1,27 +0,0 @@ | |||||||
| diff -up dhcp-4.3.0a1/client/dhclient.c.decline-onetry dhcp-4.3.0a1/client/dhclient.c
 |  | ||||||
| --- dhcp-4.3.0a1/client/dhclient.c.decline-onetry	2013-12-20 13:37:26.382796437 +0100
 |  | ||||||
| +++ dhcp-4.3.0a1/client/dhclient.c	2013-12-20 13:37:26.401796172 +0100
 |  | ||||||
| @@ -1708,11 +1708,18 @@ void bind_lease (client)
 |  | ||||||
|  	if (script_go (client)) { |  | ||||||
|  		make_decline (client, client -> new); |  | ||||||
|  		send_decline (client); |  | ||||||
| -		destroy_client_lease (client -> new);
 |  | ||||||
| -		client -> new = (struct client_lease *)0;
 |  | ||||||
| -		client -> state = S_DECLINED;
 |  | ||||||
| -		state_init (client);
 |  | ||||||
| -		return;
 |  | ||||||
| +		if (onetry) {
 |  | ||||||
| +			if (!quiet)
 |  | ||||||
| +			  log_info ("Unable to obtain a lease on first try.%s",
 |  | ||||||
| +					"  Exiting.");
 |  | ||||||
| +			exit (2);
 |  | ||||||
| +		} else {
 |  | ||||||
| +			destroy_client_lease (client -> new);
 |  | ||||||
| +			client -> new = (struct client_lease *)0;
 |  | ||||||
| +			client -> state = S_DECLINED;
 |  | ||||||
| +			state_init (client);
 |  | ||||||
| +			return;
 |  | ||||||
| +		}
 |  | ||||||
|  	} |  | ||||||
|   |  | ||||||
|  	/* Write out the new lease if it has been long enough. */ |  | ||||||
| @ -1,7 +1,7 @@ | |||||||
| diff -up dhcp-4.3.0a1/client/clparse.c.options dhcp-4.3.0a1/client/clparse.c
 | diff -up dhcp-4.3.1b1/client/clparse.c.fLPqYB dhcp-4.3.1b1/client/clparse.c
 | ||||||
| --- dhcp-4.3.0a1/client/clparse.c.options	2013-12-11 01:25:12.000000000 +0100
 | --- dhcp-4.3.1b1/client/clparse.c.fLPqYB	2014-07-02 19:58:38.000000000 +0200
 | ||||||
| +++ dhcp-4.3.0a1/client/clparse.c	2013-12-19 14:50:15.011193031 +0100
 | +++ dhcp-4.3.1b1/client/clparse.c	2014-07-10 17:38:26.938599402 +0200
 | ||||||
| @@ -154,6 +154,7 @@ isc_result_t read_client_conf ()
 | @@ -148,6 +148,7 @@ isc_result_t read_client_conf ()
 | ||||||
|  	/* Requested lease time, used by DHCPv6 (DHCPv4 uses the option cache) |  	/* Requested lease time, used by DHCPv6 (DHCPv4 uses the option cache) | ||||||
|  	 */ |  	 */ | ||||||
|  	top_level_config.requested_lease = 7200; |  	top_level_config.requested_lease = 7200; | ||||||
| @ -9,7 +9,7 @@ diff -up dhcp-4.3.0a1/client/clparse.c.options dhcp-4.3.0a1/client/clparse.c | |||||||
|   |   | ||||||
|  	group_allocate (&top_level_config.on_receipt, MDL); |  	group_allocate (&top_level_config.on_receipt, MDL); | ||||||
|  	if (!top_level_config.on_receipt) |  	if (!top_level_config.on_receipt) | ||||||
| @@ -320,7 +321,8 @@ void read_client_leases ()
 | @@ -353,7 +354,8 @@ void read_client_leases ()
 | ||||||
|  	interface-declaration | |  	interface-declaration | | ||||||
|  	LEASE client-lease-statement | |  	LEASE client-lease-statement | | ||||||
|  	ALIAS client-lease-statement | |  	ALIAS client-lease-statement | | ||||||
| @ -19,7 +19,7 @@ diff -up dhcp-4.3.0a1/client/clparse.c.options dhcp-4.3.0a1/client/clparse.c | |||||||
|   |   | ||||||
|  void parse_client_statement (cfile, ip, config) |  void parse_client_statement (cfile, ip, config) | ||||||
|  	struct parse *cfile; |  	struct parse *cfile; | ||||||
| @@ -738,6 +740,12 @@ void parse_client_statement (cfile, ip,
 | @@ -771,6 +773,12 @@ void parse_client_statement (cfile, ip,
 | ||||||
|  		parse_reject_statement (cfile, config); |  		parse_reject_statement (cfile, config); | ||||||
|  		return; |  		return; | ||||||
|   |   | ||||||
| @ -32,10 +32,10 @@ diff -up dhcp-4.3.0a1/client/clparse.c.options dhcp-4.3.0a1/client/clparse.c | |||||||
|  	      default: |  	      default: | ||||||
|  		lose = 0; |  		lose = 0; | ||||||
|  		stmt = (struct executable_statement *)0; |  		stmt = (struct executable_statement *)0; | ||||||
| diff -up dhcp-4.3.0a1/client/dhclient.8.options dhcp-4.3.0a1/client/dhclient.8
 | diff -up dhcp-4.3.1b1/client/dhclient.8.fLPqYB dhcp-4.3.1b1/client/dhclient.8
 | ||||||
| --- dhcp-4.3.0a1/client/dhclient.8.options	2013-12-11 01:25:12.000000000 +0100
 | --- dhcp-4.3.1b1/client/dhclient.8.fLPqYB	2014-07-02 19:58:38.000000000 +0200
 | ||||||
| +++ dhcp-4.3.0a1/client/dhclient.8	2013-12-19 14:50:15.010193045 +0100
 | +++ dhcp-4.3.1b1/client/dhclient.8	2014-07-10 17:38:26.938599402 +0200
 | ||||||
| @@ -124,6 +124,33 @@ dhclient - Dynamic Host Configuration Pr
 | @@ -128,6 +128,33 @@ dhclient - Dynamic Host Configuration Pr
 | ||||||
|  .B -w |  .B -w | ||||||
|  ] |  ] | ||||||
|  [ |  [ | ||||||
| @ -69,7 +69,7 @@ diff -up dhcp-4.3.0a1/client/dhclient.8.options dhcp-4.3.0a1/client/dhclient.8 | |||||||
|  .B -v |  .B -v | ||||||
|  ] |  ] | ||||||
|  [ |  [ | ||||||
| @@ -271,6 +298,69 @@ not to exit when it doesn't find any suc
 | @@ -275,6 +302,69 @@ not to exit when it doesn't find any suc
 | ||||||
|  program can then be used to notify the client when a network interface |  program can then be used to notify the client when a network interface | ||||||
|  has been added or removed, so that the client can attempt to configure an IP |  has been added or removed, so that the client can attempt to configure an IP | ||||||
|  address on that interface. |  address on that interface. | ||||||
| @ -139,9 +139,9 @@ diff -up dhcp-4.3.0a1/client/dhclient.8.options dhcp-4.3.0a1/client/dhclient.8 | |||||||
|  .TP |  .TP | ||||||
|  .BI \-n |  .BI \-n | ||||||
|  Do not configure any interfaces.  This is most likely to be useful in |  Do not configure any interfaces.  This is most likely to be useful in | ||||||
| diff -up dhcp-4.3.0a1/client/dhclient.c.options dhcp-4.3.0a1/client/dhclient.c
 | diff -up dhcp-4.3.1b1/client/dhclient.c.fLPqYB dhcp-4.3.1b1/client/dhclient.c
 | ||||||
| --- dhcp-4.3.0a1/client/dhclient.c.options	2013-12-13 22:24:38.000000000 +0100
 | --- dhcp-4.3.1b1/client/dhclient.c.fLPqYB	2014-07-02 19:58:38.000000000 +0200
 | ||||||
| +++ dhcp-4.3.0a1/client/dhclient.c	2013-12-19 14:50:15.012193017 +0100
 | +++ dhcp-4.3.1b1/client/dhclient.c	2014-07-10 17:38:44.520350055 +0200
 | ||||||
| @@ -39,6 +39,12 @@
 | @@ -39,6 +39,12 @@
 | ||||||
|  #include <limits.h> |  #include <limits.h> | ||||||
|  #include <dns/result.h> |  #include <dns/result.h> | ||||||
| @ -155,7 +155,7 @@ diff -up dhcp-4.3.0a1/client/dhclient.c.options dhcp-4.3.0a1/client/dhclient.c | |||||||
|  TIME default_lease_time = 43200; /* 12 hours... */ |  TIME default_lease_time = 43200; /* 12 hours... */ | ||||||
|  TIME max_lease_time = 86400; /* 24 hours... */ |  TIME max_lease_time = 86400; /* 24 hours... */ | ||||||
|   |   | ||||||
| @@ -87,6 +93,9 @@ int wanted_ia_na = -1;		/* the absolute
 | @@ -88,6 +94,9 @@ int wanted_ia_na = -1;		/* the absolute
 | ||||||
|  int wanted_ia_ta = 0; |  int wanted_ia_ta = 0; | ||||||
|  int wanted_ia_pd = 0; |  int wanted_ia_pd = 0; | ||||||
|  char *mockup_relay = NULL; |  char *mockup_relay = NULL; | ||||||
| @ -165,7 +165,7 @@ diff -up dhcp-4.3.0a1/client/dhclient.c.options dhcp-4.3.0a1/client/dhclient.c | |||||||
|   |   | ||||||
|  void run_stateless(int exit_mode); |  void run_stateless(int exit_mode); | ||||||
|   |   | ||||||
| @@ -123,6 +132,15 @@ main(int argc, char **argv) {
 | @@ -125,6 +134,15 @@ main(int argc, char **argv) {
 | ||||||
|  	int local_family_set = 0; |  	int local_family_set = 0; | ||||||
|  #endif /* DHCPv6 */ |  #endif /* DHCPv6 */ | ||||||
|  	char *s; |  	char *s; | ||||||
| @ -181,9 +181,9 @@ diff -up dhcp-4.3.0a1/client/dhclient.c.options dhcp-4.3.0a1/client/dhclient.c | |||||||
|   |   | ||||||
|  	/* Initialize client globals. */ |  	/* Initialize client globals. */ | ||||||
|  	memset(&default_duid, 0, sizeof(default_duid)); |  	memset(&default_duid, 0, sizeof(default_duid)); | ||||||
| @@ -313,6 +331,88 @@ main(int argc, char **argv) {
 | @@ -325,6 +343,88 @@ main(int argc, char **argv) {
 | ||||||
|  		} else if (!strcmp(argv[i], "--version")) { |  					 strlen(PACKAGE_VERSION))); | ||||||
|  			log_info("isc-dhclient-%s", PACKAGE_VERSION); |  			IGNORE_RET(write(STDERR_FILENO, "\n", 1)); | ||||||
|  			exit(0); |  			exit(0); | ||||||
| +		} else if (!strcmp(argv[i], "-C")) {
 | +		} else if (!strcmp(argv[i], "-C")) {
 | ||||||
| +			if ((++i == argc) || (argv[i] == NULL) || (*(argv[i])=='\0')) {
 | +			if ((++i == argc) || (argv[i] == NULL) || (*(argv[i])=='\0')) {
 | ||||||
| @ -270,7 +270,7 @@ diff -up dhcp-4.3.0a1/client/dhclient.c.options dhcp-4.3.0a1/client/dhclient.c | |||||||
|  		} else if (argv[i][0] == '-') { |  		} else if (argv[i][0] == '-') { | ||||||
|  		    usage(); |  		    usage(); | ||||||
|  		} else if (interfaces_requested < 0) { |  		} else if (interfaces_requested < 0) { | ||||||
| @@ -490,6 +590,156 @@ main(int argc, char **argv) {
 | @@ -507,6 +607,156 @@ main(int argc, char **argv) {
 | ||||||
|  	/* Parse the dhclient.conf file. */ |  	/* Parse the dhclient.conf file. */ | ||||||
|  	read_client_conf(); |  	read_client_conf(); | ||||||
|   |   | ||||||
| @ -427,9 +427,9 @@ diff -up dhcp-4.3.0a1/client/dhclient.c.options dhcp-4.3.0a1/client/dhclient.c | |||||||
|  	/* Parse the lease database. */ |  	/* Parse the lease database. */ | ||||||
|  	read_client_leases(); |  	read_client_leases(); | ||||||
|   |   | ||||||
| @@ -730,6 +980,10 @@ static void usage()
 | @@ -756,6 +1006,10 @@ static void usage()
 | ||||||
|  		  "                [-s server-addr] [-cf config-file] " |  		  "                [-s server-addr] [-cf config-file]\n" | ||||||
|  		  "[-lf lease-file]\n" |  		  "                [-df duid-file] [-lf lease-file]\n" | ||||||
|  		  "                [-pf pid-file] [--no-pid] [-e VAR=val]\n" |  		  "                [-pf pid-file] [--no-pid] [-e VAR=val]\n" | ||||||
| +		  "                [-C <dhcp-client-identifier>] [-B]\n"
 | +		  "                [-C <dhcp-client-identifier>] [-B]\n"
 | ||||||
| +		  "                [-H <host-name> | -F <fqdn.fqdn>] [-timeout <timeout>]\n"
 | +		  "                [-H <host-name> | -F <fqdn.fqdn>] [-timeout <timeout>]\n"
 | ||||||
| @ -438,7 +438,7 @@ diff -up dhcp-4.3.0a1/client/dhclient.c.options dhcp-4.3.0a1/client/dhclient.c | |||||||
|  		  "                [-sf script-file] [interface]"); |  		  "                [-sf script-file] [interface]"); | ||||||
|  } |  } | ||||||
|   |   | ||||||
| @@ -2489,7 +2743,8 @@ void make_discover (client, lease)
 | @@ -2531,7 +2785,8 @@ void make_discover (client, lease)
 | ||||||
|  	client -> packet.xid = random (); |  	client -> packet.xid = random (); | ||||||
|  	client -> packet.secs = 0; /* filled in by send_discover. */ |  	client -> packet.secs = 0; /* filled in by send_discover. */ | ||||||
|   |   | ||||||
| @ -448,7 +448,7 @@ diff -up dhcp-4.3.0a1/client/dhclient.c.options dhcp-4.3.0a1/client/dhclient.c | |||||||
|  		client -> packet.flags = 0; |  		client -> packet.flags = 0; | ||||||
|  	else |  	else | ||||||
|  		client -> packet.flags = htons (BOOTP_BROADCAST); |  		client -> packet.flags = htons (BOOTP_BROADCAST); | ||||||
| @@ -2573,7 +2828,9 @@ void make_request (client, lease)
 | @@ -2615,7 +2870,9 @@ void make_request (client, lease)
 | ||||||
|  	} else { |  	} else { | ||||||
|  		memset (&client -> packet.ciaddr, 0, |  		memset (&client -> packet.ciaddr, 0, | ||||||
|  			sizeof client -> packet.ciaddr); |  			sizeof client -> packet.ciaddr); | ||||||
| @ -459,7 +459,7 @@ diff -up dhcp-4.3.0a1/client/dhclient.c.options dhcp-4.3.0a1/client/dhclient.c | |||||||
|  			client -> packet.flags = 0; |  			client -> packet.flags = 0; | ||||||
|  		else |  		else | ||||||
|  			client -> packet.flags = htons (BOOTP_BROADCAST); |  			client -> packet.flags = htons (BOOTP_BROADCAST); | ||||||
| @@ -2635,7 +2892,8 @@ void make_decline (client, lease)
 | @@ -2677,7 +2934,8 @@ void make_decline (client, lease)
 | ||||||
|  	client -> packet.hops = 0; |  	client -> packet.hops = 0; | ||||||
|  	client -> packet.xid = client -> xid; |  	client -> packet.xid = client -> xid; | ||||||
|  	client -> packet.secs = 0; /* Filled in by send_request. */ |  	client -> packet.secs = 0; /* Filled in by send_request. */ | ||||||
| @ -469,10 +469,10 @@ diff -up dhcp-4.3.0a1/client/dhclient.c.options dhcp-4.3.0a1/client/dhclient.c | |||||||
|  		client -> packet.flags = 0; |  		client -> packet.flags = 0; | ||||||
|  	else |  	else | ||||||
|  		client -> packet.flags = htons (BOOTP_BROADCAST); |  		client -> packet.flags = htons (BOOTP_BROADCAST); | ||||||
| diff -up dhcp-4.3.0a1/common/conflex.c.options dhcp-4.3.0a1/common/conflex.c
 | diff -up dhcp-4.3.1b1/common/conflex.c.fLPqYB dhcp-4.3.1b1/common/conflex.c
 | ||||||
| --- dhcp-4.3.0a1/common/conflex.c.options	2013-12-11 01:25:12.000000000 +0100
 | --- dhcp-4.3.1b1/common/conflex.c.fLPqYB	2014-07-02 19:58:38.000000000 +0200
 | ||||||
| +++ dhcp-4.3.0a1/common/conflex.c	2013-12-19 14:50:15.013193003 +0100
 | +++ dhcp-4.3.1b1/common/conflex.c	2014-07-10 17:38:26.940599374 +0200
 | ||||||
| @@ -817,6 +817,8 @@ intern(char *atom, enum dhcp_token dfv)
 | @@ -811,6 +811,8 @@ intern(char *atom, enum dhcp_token dfv)
 | ||||||
|  			return BALANCE; |  			return BALANCE; | ||||||
|  		if (!strcasecmp (atom + 1, "ound")) |  		if (!strcasecmp (atom + 1, "ound")) | ||||||
|  			return BOUND; |  			return BOUND; | ||||||
| @ -481,10 +481,10 @@ diff -up dhcp-4.3.0a1/common/conflex.c.options dhcp-4.3.0a1/common/conflex.c | |||||||
|  		break; |  		break; | ||||||
|  	      case 'c': |  	      case 'c': | ||||||
|  		if (!strcasecmp(atom + 1, "ase")) |  		if (!strcasecmp(atom + 1, "ase")) | ||||||
| diff -up dhcp-4.3.0a1/includes/dhcpd.h.options dhcp-4.3.0a1/includes/dhcpd.h
 | diff -up dhcp-4.3.1b1/includes/dhcpd.h.fLPqYB dhcp-4.3.1b1/includes/dhcpd.h
 | ||||||
| --- dhcp-4.3.0a1/includes/dhcpd.h.options	2013-12-13 21:49:44.000000000 +0100
 | --- dhcp-4.3.1b1/includes/dhcpd.h.fLPqYB	2014-07-02 19:58:39.000000000 +0200
 | ||||||
| +++ dhcp-4.3.0a1/includes/dhcpd.h	2013-12-19 14:50:15.014192989 +0100
 | +++ dhcp-4.3.1b1/includes/dhcpd.h	2014-07-10 17:38:26.941599360 +0200
 | ||||||
| @@ -1153,6 +1153,9 @@ struct client_config {
 | @@ -1152,6 +1152,9 @@ struct client_config {
 | ||||||
|  	int do_forward_update;		/* If nonzero, and if we have the |  	int do_forward_update;		/* If nonzero, and if we have the | ||||||
|  					   information we need, update the |  					   information we need, update the | ||||||
|  					   A record for the address we get. */ |  					   A record for the address we get. */ | ||||||
| @ -494,10 +494,10 @@ diff -up dhcp-4.3.0a1/includes/dhcpd.h.options dhcp-4.3.0a1/includes/dhcpd.h | |||||||
|  }; |  }; | ||||||
|   |   | ||||||
|  /* Per-interface state used in the dhcp client... */ |  /* Per-interface state used in the dhcp client... */ | ||||||
| diff -up dhcp-4.3.0a1/includes/dhctoken.h.options dhcp-4.3.0a1/includes/dhctoken.h
 | diff -up dhcp-4.3.1b1/includes/dhctoken.h.fLPqYB dhcp-4.3.1b1/includes/dhctoken.h
 | ||||||
| --- dhcp-4.3.0a1/includes/dhctoken.h.options	2013-12-19 14:50:15.014192989 +0100
 | --- dhcp-4.3.1b1/includes/dhctoken.h.fLPqYB	2014-07-02 19:58:39.000000000 +0200
 | ||||||
| +++ dhcp-4.3.0a1/includes/dhctoken.h	2013-12-19 14:51:57.472758577 +0100
 | +++ dhcp-4.3.1b1/includes/dhctoken.h	2014-07-10 17:38:26.942599346 +0200
 | ||||||
| @@ -373,7 +373,8 @@ enum dhcp_token {
 | @@ -367,7 +367,8 @@ enum dhcp_token {
 | ||||||
|  	TOKEN_INFINIBAND = 668, |  	TOKEN_INFINIBAND = 668, | ||||||
|  	POOL6 = 669, |  	POOL6 = 669, | ||||||
|  	V6RELAY = 670, |  	V6RELAY = 670, | ||||||
|  | |||||||
| @ -1,7 +1,7 @@ | |||||||
| diff -up dhcp-4.3.0/client/dhclient.8.duidv4 dhcp-4.3.0/client/dhclient.8
 | diff -up dhcp-4.3.1b1/client/dhclient.8.KrJcIv dhcp-4.3.1b1/client/dhclient.8
 | ||||||
| --- dhcp-4.3.0/client/dhclient.8.duidv4	2014-02-18 15:52:44.564123664 +0100
 | --- dhcp-4.3.1b1/client/dhclient.8.KrJcIv	2014-07-10 17:39:25.852763873 +0200
 | ||||||
| +++ dhcp-4.3.0/client/dhclient.8	2014-02-18 15:52:44.629122766 +0100
 | +++ dhcp-4.3.1b1/client/dhclient.8	2014-07-10 17:54:26.841012988 +0200
 | ||||||
| @@ -454,6 +454,9 @@ used to construct a RFC4361 style client
 | @@ -458,6 +458,9 @@ used to construct a RFC4361 style client
 | ||||||
|  in the client's messages.  This client id can be overridden by |  in the client's messages.  This client id can be overridden by | ||||||
|  setting a client id in the configuration file.  Overridding the |  setting a client id in the configuration file.  Overridding the | ||||||
|  client id in this fashion is discouraged. |  client id in this fashion is discouraged. | ||||||
| @ -11,10 +11,10 @@ diff -up dhcp-4.3.0/client/dhclient.8.duidv4 dhcp-4.3.0/client/dhclient.8 | |||||||
|  .TP |  .TP | ||||||
|  .BI \-I |  .BI \-I | ||||||
|  Use the standard DDNS scheme from RFCs 4701 & 4702.   |  Use the standard DDNS scheme from RFCs 4701 & 4702.   | ||||||
| diff -up dhcp-4.3.0/client/dhclient.c.duidv4 dhcp-4.3.0/client/dhclient.c
 | diff -up dhcp-4.3.1b1/client/dhclient.c.KrJcIv dhcp-4.3.1b1/client/dhclient.c
 | ||||||
| --- dhcp-4.3.0/client/dhclient.c.duidv4	2014-02-18 15:52:44.626122807 +0100
 | --- dhcp-4.3.1b1/client/dhclient.c.KrJcIv	2014-07-10 17:54:26.829013157 +0200
 | ||||||
| +++ dhcp-4.3.0/client/dhclient.c	2014-02-18 15:52:44.630122752 +0100
 | +++ dhcp-4.3.1b1/client/dhclient.c	2014-07-10 17:55:50.155835918 +0200
 | ||||||
| @@ -72,7 +72,7 @@ struct sockaddr_in sockaddr_broadcast;
 | @@ -73,7 +73,7 @@ struct sockaddr_in sockaddr_broadcast;
 | ||||||
|  struct in_addr giaddr; |  struct in_addr giaddr; | ||||||
|  struct data_string default_duid; |  struct data_string default_duid; | ||||||
|  int duid_type = 0; |  int duid_type = 0; | ||||||
| @ -23,7 +23,7 @@ diff -up dhcp-4.3.0/client/dhclient.c.duidv4 dhcp-4.3.0/client/dhclient.c | |||||||
|  int std_dhcid = 0; |  int std_dhcid = 0; | ||||||
|   |   | ||||||
|  /* ASSERT_STATE() does nothing now; it used to be |  /* ASSERT_STATE() does nothing now; it used to be | ||||||
| @@ -1270,7 +1270,7 @@ static void setup_ib_interface(struct in
 | @@ -1301,7 +1301,7 @@ static void setup_ib_interface(struct in
 | ||||||
|  	} |  	} | ||||||
|   |   | ||||||
|  	/* No client ID specified */ |  	/* No client ID specified */ | ||||||
| @ -32,15 +32,15 @@ diff -up dhcp-4.3.0/client/dhclient.c.duidv4 dhcp-4.3.0/client/dhclient.c | |||||||
|  } |  } | ||||||
|   |   | ||||||
|  /* Individual States: |  /* Individual States: | ||||||
| @@ -3299,6 +3299,7 @@ form_duid(struct data_string *duid, cons
 | @@ -3342,6 +3342,7 @@ form_duid(struct data_string *duid, cons
 | ||||||
|  { |  | ||||||
|  	struct interface_info *ip; |  	struct interface_info *ip; | ||||||
|  	int len; |  	int len; | ||||||
|  |  	char *str; | ||||||
| +	unsigned hlen;
 | +	unsigned hlen;
 | ||||||
|   |   | ||||||
|  	/* For now, just use the first interface on the list. */ |  	/* For now, just use the first interface on the list. */ | ||||||
|  	ip = interfaces; |  	ip = interfaces; | ||||||
| @@ -3322,6 +3323,11 @@ form_duid(struct data_string *duid, cons
 | @@ -3365,6 +3366,11 @@ form_duid(struct data_string *duid, cons
 | ||||||
|  	if (duid_type == 0) |  	if (duid_type == 0) | ||||||
|  		duid_type = stateless ? DUID_LL : DUID_LLT; |  		duid_type = stateless ? DUID_LL : DUID_LLT; | ||||||
|   |   | ||||||
| @ -52,7 +52,7 @@ diff -up dhcp-4.3.0/client/dhclient.c.duidv4 dhcp-4.3.0/client/dhclient.c | |||||||
|  	/* |  	/* | ||||||
|  	 * 2 bytes for the 'duid type' field. |  	 * 2 bytes for the 'duid type' field. | ||||||
|  	 * 2 bytes for the 'htype' field. |  	 * 2 bytes for the 'htype' field. | ||||||
| @@ -3329,7 +3335,7 @@ form_duid(struct data_string *duid, cons
 | @@ -3372,7 +3378,7 @@ form_duid(struct data_string *duid, cons
 | ||||||
|  	 * enough bytes for the hardware address (note that hw_address has |  	 * enough bytes for the hardware address (note that hw_address has | ||||||
|  	 * the 'htype' on byte zero). |  	 * the 'htype' on byte zero). | ||||||
|  	 */ |  	 */ | ||||||
| @ -61,7 +61,7 @@ diff -up dhcp-4.3.0/client/dhclient.c.duidv4 dhcp-4.3.0/client/dhclient.c | |||||||
|  	if (duid_type == DUID_LLT) |  	if (duid_type == DUID_LLT) | ||||||
|  		len += 4; |  		len += 4; | ||||||
|  	if (!buffer_allocate(&duid->buffer, len, MDL)) |  	if (!buffer_allocate(&duid->buffer, len, MDL)) | ||||||
| @@ -3343,12 +3349,12 @@ form_duid(struct data_string *duid, cons
 | @@ -3386,12 +3392,12 @@ form_duid(struct data_string *duid, cons
 | ||||||
|  		putUShort(duid->buffer->data + 2, ip->hw_address.hbuf[0]); |  		putUShort(duid->buffer->data + 2, ip->hw_address.hbuf[0]); | ||||||
|  		putULong(duid->buffer->data + 4, cur_time - DUID_TIME_EPOCH); |  		putULong(duid->buffer->data + 4, cur_time - DUID_TIME_EPOCH); | ||||||
|  		memcpy(duid->buffer->data + 8, ip->hw_address.hbuf + 1, |  		memcpy(duid->buffer->data + 8, ip->hw_address.hbuf + 1, | ||||||
| @ -75,4 +75,4 @@ diff -up dhcp-4.3.0/client/dhclient.c.duidv4 dhcp-4.3.0/client/dhclient.c | |||||||
| +		       hlen - 1);
 | +		       hlen - 1);
 | ||||||
|  	} |  	} | ||||||
|   |   | ||||||
|  	return ISC_R_SUCCESS; |  	str = quotify_buf(duid->data, duid->len, MDL); | ||||||
|  | |||||||
| @ -1,13 +0,0 @@ | |||||||
| diff -up dhcp-4.3.0a1/common/parse.c.dupl-key dhcp-4.3.0a1/common/parse.c
 |  | ||||||
| --- dhcp-4.3.0a1/common/parse.c.dupl-key	2013-12-20 13:53:01.121772037 +0100
 |  | ||||||
| +++ dhcp-4.3.0a1/common/parse.c	2013-12-20 13:53:01.211770781 +0100
 |  | ||||||
| @@ -2930,6 +2930,9 @@ int parse_zone (struct dns_zone *zone, s
 |  | ||||||
|  			    } |  | ||||||
|  			    val = key_name; |  | ||||||
|  		    } |  | ||||||
| +		    if (zone->key)
 |  | ||||||
| +			log_fatal("Multiple key definition for zone %s.",
 |  | ||||||
| +				  zone->name);
 |  | ||||||
|  		    if (omapi_auth_key_lookup_name (&zone -> key, val) != |  | ||||||
|  			ISC_R_SUCCESS) |  | ||||||
|  			    parse_warn (cfile, "unknown key %s", val); |  | ||||||
| @ -1,7 +1,7 @@ | |||||||
| diff -up dhcp-4.3.0a1/common/discover.c.getifaddrs dhcp-4.3.0a1/common/discover.c
 | diff -up dhcp-4.3.1b1/common/discover.c.AyFwkY dhcp-4.3.1b1/common/discover.c
 | ||||||
| --- dhcp-4.3.0a1/common/discover.c.getifaddrs	2013-12-11 01:25:12.000000000 +0100
 | --- dhcp-4.3.1b1/common/discover.c.AyFwkY	2014-07-02 19:58:38.000000000 +0200
 | ||||||
| +++ dhcp-4.3.0a1/common/discover.c	2013-12-20 13:38:59.995493253 +0100
 | +++ dhcp-4.3.1b1/common/discover.c	2014-07-10 17:58:21.588696480 +0200
 | ||||||
| @@ -376,391 +376,13 @@ end_iface_scan(struct iface_conf_list *i
 | @@ -373,391 +373,13 @@ end_iface_scan(struct iface_conf_list *i
 | ||||||
|  	ifaces->sock = -1; |  	ifaces->sock = -1; | ||||||
|  } |  } | ||||||
|   |   | ||||||
| @ -43,7 +43,7 @@ diff -up dhcp-4.3.0a1/common/discover.c.getifaddrs dhcp-4.3.0a1/common/discover. | |||||||
| - */
 | - */
 | ||||||
| -int 
 | -int 
 | ||||||
| -begin_iface_scan(struct iface_conf_list *ifaces) {
 | -begin_iface_scan(struct iface_conf_list *ifaces) {
 | ||||||
| -	char buf[256];
 | -	char buf[IF_LINE_LENGTH];
 | ||||||
| -	int len;
 | -	int len;
 | ||||||
| -	int i;
 | -	int i;
 | ||||||
| -
 | -
 | ||||||
| @ -116,7 +116,7 @@ diff -up dhcp-4.3.0a1/common/discover.c.getifaddrs dhcp-4.3.0a1/common/discover. | |||||||
| - */
 | - */
 | ||||||
| -static int
 | -static int
 | ||||||
| -next_iface4(struct iface_info *info, int *err, struct iface_conf_list *ifaces) {
 | -next_iface4(struct iface_info *info, int *err, struct iface_conf_list *ifaces) {
 | ||||||
| -	char buf[256];
 | -	char buf[IF_LINE_LENGTH];
 | ||||||
| -	int len;
 | -	int len;
 | ||||||
| -	char *p;
 | -	char *p;
 | ||||||
| -	char *name;
 | -	char *name;
 | ||||||
| @ -240,7 +240,7 @@ diff -up dhcp-4.3.0a1/common/discover.c.getifaddrs dhcp-4.3.0a1/common/discover. | |||||||
| - */
 | - */
 | ||||||
| -static int
 | -static int
 | ||||||
| -next_iface6(struct iface_info *info, int *err, struct iface_conf_list *ifaces) {
 | -next_iface6(struct iface_info *info, int *err, struct iface_conf_list *ifaces) {
 | ||||||
| -	char buf[256];
 | -	char buf[IF_LINE_LENGTH];
 | ||||||
| -	int len;
 | -	int len;
 | ||||||
| -	char *p;
 | -	char *p;
 | ||||||
| -	char *name;
 | -	char *name;
 | ||||||
| @ -394,7 +394,7 @@ diff -up dhcp-4.3.0a1/common/discover.c.getifaddrs dhcp-4.3.0a1/common/discover. | |||||||
|   * function. |   * function. | ||||||
|   * |   * | ||||||
|   * The getifaddrs() man page describes the use. |   * The getifaddrs() man page describes the use. | ||||||
| @@ -808,6 +430,8 @@ begin_iface_scan(struct iface_conf_list
 | @@ -805,6 +427,8 @@ begin_iface_scan(struct iface_conf_list
 | ||||||
|   */ |   */ | ||||||
|  int |  int | ||||||
|  next_iface(struct iface_info *info, int *err, struct iface_conf_list *ifaces) { |  next_iface(struct iface_info *info, int *err, struct iface_conf_list *ifaces) { | ||||||
| @ -403,7 +403,7 @@ diff -up dhcp-4.3.0a1/common/discover.c.getifaddrs dhcp-4.3.0a1/common/discover. | |||||||
|  	if (ifaces->next == NULL) { |  	if (ifaces->next == NULL) { | ||||||
|  		*err = 0; |  		*err = 0; | ||||||
|  		return 0; |  		return 0; | ||||||
| @@ -819,8 +443,20 @@ next_iface(struct iface_info *info, int
 | @@ -816,8 +440,20 @@ next_iface(struct iface_info *info, int
 | ||||||
|  		return 0; |  		return 0; | ||||||
|  	} |  	} | ||||||
|  	strcpy(info->name, ifaces->next->ifa_name); |  	strcpy(info->name, ifaces->next->ifa_name); | ||||||
|  | |||||||
| @ -1,12 +0,0 @@ | |||||||
| diff -up dhcp-4.3.0a1/client/dhclient.c.logpid dhcp-4.3.0a1/client/dhclient.c
 |  | ||||||
| --- dhcp-4.3.0a1/client/dhclient.c.logpid	2013-12-19 15:51:50.588388633 +0100
 |  | ||||||
| +++ dhcp-4.3.0a1/client/dhclient.c	2013-12-19 15:51:50.593388563 +0100
 |  | ||||||
| @@ -165,7 +165,7 @@ main(int argc, char **argv) {
 |  | ||||||
|  	else if (fd != -1) |  | ||||||
|  		close(fd); |  | ||||||
|   |  | ||||||
| -	openlog("dhclient", LOG_NDELAY, LOG_DAEMON);
 |  | ||||||
| +	openlog("dhclient", LOG_NDELAY | LOG_PID, LOG_DAEMON);
 |  | ||||||
|   |  | ||||||
|  #if !(defined(DEBUG) || defined(__CYGWIN32__)) |  | ||||||
|  	setlogmask(LOG_UPTO(LOG_INFO)); |  | ||||||
| @ -1,16 +1,16 @@ | |||||||
| diff -up dhcp-4.3.0a1/client/dhclient.c.lpf-ib dhcp-4.3.0a1/client/dhclient.c
 | diff -up dhcp-4.3.1b1/client/dhclient.c.bmgpWV dhcp-4.3.1b1/client/dhclient.c
 | ||||||
| --- dhcp-4.3.0a1/client/dhclient.c.lpf-ib	2013-12-20 14:03:30.337992402 +0100
 | --- dhcp-4.3.1b1/client/dhclient.c.bmgpWV	2014-07-10 17:50:26.922402550 +0200
 | ||||||
| +++ dhcp-4.3.0a1/client/dhclient.c	2013-12-20 14:03:30.345992290 +0100
 | +++ dhcp-4.3.1b1/client/dhclient.c	2014-07-10 17:53:43.629623477 +0200
 | ||||||
| @@ -113,6 +113,8 @@ static int check_domain_name_list(const
 | @@ -114,6 +114,8 @@ static int check_domain_name_list(const
 | ||||||
|  static int check_option_values(struct universe *universe, unsigned int opt, |  static int check_option_values(struct universe *universe, unsigned int opt, | ||||||
|  			       const char *ptr, size_t len); |  			       const char *ptr, size_t len); | ||||||
|   |   | ||||||
| +static void setup_ib_interface(struct interface_info *ip);
 | +static void setup_ib_interface(struct interface_info *ip);
 | ||||||
| +
 | +
 | ||||||
|  |  #ifndef UNIT_TEST | ||||||
|  int |  int | ||||||
|  main(int argc, char **argv) { |  main(int argc, char **argv) { | ||||||
|  	int fd; | @@ -937,6 +939,13 @@ main(int argc, char **argv) {
 | ||||||
| @@ -915,6 +917,13 @@ main(int argc, char **argv) {
 |  | ||||||
|  	} |  	} | ||||||
|  	srandom(seed + cur_time + (unsigned)getpid()); |  	srandom(seed + cur_time + (unsigned)getpid()); | ||||||
|   |   | ||||||
| @ -24,7 +24,7 @@ diff -up dhcp-4.3.0a1/client/dhclient.c.lpf-ib dhcp-4.3.0a1/client/dhclient.c | |||||||
|   |   | ||||||
|  	/* |  	/* | ||||||
|  	 * Establish a default DUID.  We always do so for v6 and |  	 * Establish a default DUID.  We always do so for v6 and | ||||||
| @@ -1199,6 +1208,29 @@ int find_subnet (struct subnet **sp,
 | @@ -1230,6 +1239,29 @@ int find_subnet (struct subnet **sp,
 | ||||||
|  	return 0; |  	return 0; | ||||||
|  } |  } | ||||||
|   |   | ||||||
| @ -54,9 +54,9 @@ diff -up dhcp-4.3.0a1/client/dhclient.c.lpf-ib dhcp-4.3.0a1/client/dhclient.c | |||||||
|  /* Individual States: |  /* Individual States: | ||||||
|   * |   * | ||||||
|   * Each routine is called from the dhclient_state_machine() in one of |   * Each routine is called from the dhclient_state_machine() in one of | ||||||
| diff -up dhcp-4.3.0a1/common/bpf.c.lpf-ib dhcp-4.3.0a1/common/bpf.c
 | diff -up dhcp-4.3.1b1/common/bpf.c.bmgpWV dhcp-4.3.1b1/common/bpf.c
 | ||||||
| --- dhcp-4.3.0a1/common/bpf.c.lpf-ib	2013-12-20 14:03:30.330992500 +0100
 | --- dhcp-4.3.1b1/common/bpf.c.bmgpWV	2014-07-10 17:48:03.797424616 +0200
 | ||||||
| +++ dhcp-4.3.0a1/common/bpf.c	2013-12-20 14:03:30.345992290 +0100
 | +++ dhcp-4.3.1b1/common/bpf.c	2014-07-10 17:52:57.705272295 +0200
 | ||||||
| @@ -199,11 +199,44 @@ struct bpf_insn dhcp_bpf_filter [] = {
 | @@ -199,11 +199,44 @@ struct bpf_insn dhcp_bpf_filter [] = {
 | ||||||
|  	BPF_STMT(BPF_RET+BPF_K, 0), |  	BPF_STMT(BPF_RET+BPF_K, 0), | ||||||
|  }; |  }; | ||||||
| @ -102,9 +102,9 @@ diff -up dhcp-4.3.0a1/common/bpf.c.lpf-ib dhcp-4.3.0a1/common/bpf.c | |||||||
|  #if defined (HAVE_TR_SUPPORT) |  #if defined (HAVE_TR_SUPPORT) | ||||||
|  struct bpf_insn dhcp_bpf_tr_filter [] = { |  struct bpf_insn dhcp_bpf_tr_filter [] = { | ||||||
|          /* accept all token ring packets due to variable length header */ |          /* accept all token ring packets due to variable length header */ | ||||||
| diff -up dhcp-4.3.0a1/common/lpf.c.lpf-ib dhcp-4.3.0a1/common/lpf.c
 | diff -up dhcp-4.3.1b1/common/lpf.c.bmgpWV dhcp-4.3.1b1/common/lpf.c
 | ||||||
| --- dhcp-4.3.0a1/common/lpf.c.lpf-ib	2013-12-20 14:03:30.331992486 +0100
 | --- dhcp-4.3.1b1/common/lpf.c.bmgpWV	2014-07-10 17:48:03.797424616 +0200
 | ||||||
| +++ dhcp-4.3.0a1/common/lpf.c	2013-12-20 14:03:30.346992276 +0100
 | +++ dhcp-4.3.1b1/common/lpf.c	2014-07-10 17:52:57.706272281 +0200
 | ||||||
| @@ -46,6 +46,17 @@
 | @@ -46,6 +46,17 @@
 | ||||||
|  #if defined (USE_LPF_RECEIVE) || defined (USE_LPF_HWADDR) |  #if defined (USE_LPF_RECEIVE) || defined (USE_LPF_HWADDR) | ||||||
|  #include <sys/ioctl.h> |  #include <sys/ioctl.h> | ||||||
| @ -524,10 +524,10 @@ diff -up dhcp-4.3.0a1/common/lpf.c.lpf-ib dhcp-4.3.0a1/common/lpf.c | |||||||
| +	freeifaddrs(ifaddrs);
 | +	freeifaddrs(ifaddrs);
 | ||||||
|  } |  } | ||||||
|  #endif |  #endif | ||||||
| diff -up dhcp-4.3.0a1/common/socket.c.lpf-ib dhcp-4.3.0a1/common/socket.c
 | diff -up dhcp-4.3.1b1/common/socket.c.bmgpWV dhcp-4.3.1b1/common/socket.c
 | ||||||
| --- dhcp-4.3.0a1/common/socket.c.lpf-ib	2013-12-11 01:25:12.000000000 +0100
 | --- dhcp-4.3.1b1/common/socket.c.bmgpWV	2014-07-02 19:58:38.000000000 +0200
 | ||||||
| +++ dhcp-4.3.0a1/common/socket.c	2013-12-20 14:04:54.904811982 +0100
 | +++ dhcp-4.3.1b1/common/socket.c	2014-07-10 17:52:57.706272281 +0200
 | ||||||
| @@ -328,7 +328,7 @@ void if_register_send (info)
 | @@ -322,7 +322,7 @@ void if_register_send (info)
 | ||||||
|  	info->wfdesc = if_register_socket(info, AF_INET, 0, NULL); |  	info->wfdesc = if_register_socket(info, AF_INET, 0, NULL); | ||||||
|  	/* If this is a normal IPv4 address, get the hardware address. */ |  	/* If this is a normal IPv4 address, get the hardware address. */ | ||||||
|  	if (strcmp(info->name, "fallback") != 0) |  	if (strcmp(info->name, "fallback") != 0) | ||||||
| @ -536,7 +536,7 @@ diff -up dhcp-4.3.0a1/common/socket.c.lpf-ib dhcp-4.3.0a1/common/socket.c | |||||||
|  #if defined (USE_SOCKET_FALLBACK) |  #if defined (USE_SOCKET_FALLBACK) | ||||||
|  	/* Fallback only registers for send, but may need to receive as |  	/* Fallback only registers for send, but may need to receive as | ||||||
|  	   well. */ |  	   well. */ | ||||||
| @@ -391,7 +391,7 @@ void if_register_receive (info)
 | @@ -385,7 +385,7 @@ void if_register_receive (info)
 | ||||||
|  #endif /* IP_PKTINFO... */ |  #endif /* IP_PKTINFO... */ | ||||||
|  	/* If this is a normal IPv4 address, get the hardware address. */ |  	/* If this is a normal IPv4 address, get the hardware address. */ | ||||||
|  	if (strcmp(info->name, "fallback") != 0) |  	if (strcmp(info->name, "fallback") != 0) | ||||||
| @ -545,7 +545,7 @@ diff -up dhcp-4.3.0a1/common/socket.c.lpf-ib dhcp-4.3.0a1/common/socket.c | |||||||
|   |   | ||||||
|  	if (!quiet_interface_discovery) |  	if (!quiet_interface_discovery) | ||||||
|  		log_info ("Listening on Socket/%s%s%s", |  		log_info ("Listening on Socket/%s%s%s", | ||||||
| @@ -505,7 +505,7 @@ if_register6(struct interface_info *info
 | @@ -499,7 +499,7 @@ if_register6(struct interface_info *info
 | ||||||
|  	if (req_multi) |  	if (req_multi) | ||||||
|  		if_register_multicast(info); |  		if_register_multicast(info); | ||||||
|   |   | ||||||
| @ -554,7 +554,7 @@ diff -up dhcp-4.3.0a1/common/socket.c.lpf-ib dhcp-4.3.0a1/common/socket.c | |||||||
|   |   | ||||||
|  	if (!quiet_interface_discovery) { |  	if (!quiet_interface_discovery) { | ||||||
|  		if (info->shared_network != NULL) { |  		if (info->shared_network != NULL) { | ||||||
| @@ -561,7 +561,7 @@ if_register_linklocal6(struct interface_
 | @@ -555,7 +555,7 @@ if_register_linklocal6(struct interface_
 | ||||||
|  	info->rfdesc = sock; |  	info->rfdesc = sock; | ||||||
|  	info->wfdesc = sock; |  	info->wfdesc = sock; | ||||||
|   |   | ||||||
| @ -563,10 +563,10 @@ diff -up dhcp-4.3.0a1/common/socket.c.lpf-ib dhcp-4.3.0a1/common/socket.c | |||||||
|   |   | ||||||
|  	if (!quiet_interface_discovery) { |  	if (!quiet_interface_discovery) { | ||||||
|  		if (info->shared_network != NULL) { |  		if (info->shared_network != NULL) { | ||||||
| diff -up dhcp-4.3.0a1/includes/dhcpd.h.lpf-ib dhcp-4.3.0a1/includes/dhcpd.h
 | diff -up dhcp-4.3.1b1/includes/dhcpd.h.bmgpWV dhcp-4.3.1b1/includes/dhcpd.h
 | ||||||
| --- dhcp-4.3.0a1/includes/dhcpd.h.lpf-ib	2013-12-20 14:03:30.338992388 +0100
 | --- dhcp-4.3.1b1/includes/dhcpd.h.bmgpWV	2014-07-10 17:50:26.923402536 +0200
 | ||||||
| +++ dhcp-4.3.0a1/includes/dhcpd.h	2013-12-20 14:03:30.348992248 +0100
 | +++ dhcp-4.3.1b1/includes/dhcpd.h	2014-07-10 17:52:57.707272266 +0200
 | ||||||
| @@ -1249,6 +1249,7 @@ struct interface_info {
 | @@ -1248,6 +1248,7 @@ struct interface_info {
 | ||||||
|  	struct shared_network *shared_network; |  	struct shared_network *shared_network; | ||||||
|  				/* Networks connected to this interface. */ |  				/* Networks connected to this interface. */ | ||||||
|  	struct hardware hw_address;	/* Its physical address. */ |  	struct hardware hw_address;	/* Its physical address. */ | ||||||
| @ -574,7 +574,7 @@ diff -up dhcp-4.3.0a1/includes/dhcpd.h.lpf-ib dhcp-4.3.0a1/includes/dhcpd.h | |||||||
|  	struct in_addr *addresses;	/* Addresses associated with this |  	struct in_addr *addresses;	/* Addresses associated with this | ||||||
|  					 * interface. |  					 * interface. | ||||||
|  					 */ |  					 */ | ||||||
| @@ -2425,7 +2426,7 @@ void print_dns_status (int, struct dhcp_
 | @@ -2439,7 +2440,7 @@ void print_dns_status (int, struct dhcp_
 | ||||||
|  #endif |  #endif | ||||||
|  const char *print_time(TIME); |  const char *print_time(TIME); | ||||||
|   |   | ||||||
|  | |||||||
| @ -1,53 +0,0 @@ | |||||||
| diff -up dhcp-4.3.0a1/client/dhclient.c.next-server dhcp-4.3.0a1/client/dhclient.c
 |  | ||||||
| --- dhcp-4.3.0a1/client/dhclient.c.next-server	2013-12-20 13:57:06.458349572 +0100
 |  | ||||||
| +++ dhcp-4.3.0a1/client/dhclient.c	2013-12-20 13:57:06.500348986 +0100
 |  | ||||||
| @@ -1486,7 +1486,7 @@ void state_selecting (cpp)
 |  | ||||||
|  		client -> state = S_REQUESTING; |  | ||||||
|   |  | ||||||
|  		/* Bind to the address we received. */ |  | ||||||
| -		bind_lease (client);
 |  | ||||||
| +		bind_lease (client, NULL);
 |  | ||||||
|  		return; |  | ||||||
|  	} |  | ||||||
|   |  | ||||||
| @@ -1676,11 +1676,12 @@ void dhcpack (packet)
 |  | ||||||
|  	if (client -> new -> rebind < cur_time) |  | ||||||
|  		client -> new -> rebind = TIME_MAX; |  | ||||||
|   |  | ||||||
| -	bind_lease (client);
 |  | ||||||
| +	bind_lease (client, &packet -> raw -> siaddr);
 |  | ||||||
|  } |  | ||||||
|   |  | ||||||
| -void bind_lease (client)
 |  | ||||||
| +void bind_lease (client, siaddr)
 |  | ||||||
|  	struct client_state *client; |  | ||||||
| +	struct in_addr *siaddr;
 |  | ||||||
|  { |  | ||||||
|  	struct timeval tv; |  | ||||||
|   |  | ||||||
| @@ -1702,6 +1703,13 @@ void bind_lease (client)
 |  | ||||||
|  	if (client -> alias) |  | ||||||
|  		script_write_params (client, "alias_", client -> alias); |  | ||||||
|   |  | ||||||
| +	if (siaddr) {
 |  | ||||||
| +		char buf[INET_ADDRSTRLEN];
 |  | ||||||
| +
 |  | ||||||
| +		if (inet_ntop (AF_INET, (void *) siaddr, buf, sizeof (buf)))
 |  | ||||||
| +			client_envadd (client, "new_", "next_server", "%s", buf);
 |  | ||||||
| +	}
 |  | ||||||
| +
 |  | ||||||
|  	/* If the BOUND/RENEW code detects another machine using the |  | ||||||
|  	   offered address, it exits nonzero.  We need to send a |  | ||||||
|  	   DHCPDECLINE and toss the lease. */ |  | ||||||
| diff -up dhcp-4.3.0a1/includes/dhcpd.h.next-server dhcp-4.3.0a1/includes/dhcpd.h
 |  | ||||||
| --- dhcp-4.3.0a1/includes/dhcpd.h.next-server	2013-12-20 13:57:06.434349907 +0100
 |  | ||||||
| +++ dhcp-4.3.0a1/includes/dhcpd.h	2013-12-20 13:57:06.502348958 +0100
 |  | ||||||
| @@ -2771,7 +2771,7 @@ void state_bound (void *);
 |  | ||||||
|  void state_stop (void *); |  | ||||||
|  void state_panic (void *); |  | ||||||
|   |  | ||||||
| -void bind_lease (struct client_state *);
 |  | ||||||
| +void bind_lease (struct client_state *, struct in_addr *);
 |  | ||||||
|   |  | ||||||
|  void make_client_options (struct client_state *, |  | ||||||
|  			  struct client_lease *, u_int8_t *, |  | ||||||
| @ -1,7 +1,7 @@ | |||||||
| diff -up dhcp-4.3.0a1/client/dhclient.c.paranoia dhcp-4.3.0a1/client/dhclient.c
 | diff -up dhcp-4.3.1b1/client/dhclient.c.dlTsyN dhcp-4.3.1b1/client/dhclient.c
 | ||||||
| --- dhcp-4.3.0a1/client/dhclient.c.paranoia	2013-12-19 16:30:21.401211512 +0100
 | --- dhcp-4.3.1b1/client/dhclient.c.dlTsyN	2014-07-10 17:49:49.882925843 +0200
 | ||||||
| +++ dhcp-4.3.0a1/client/dhclient.c	2013-12-19 16:30:21.409211401 +0100
 | +++ dhcp-4.3.1b1/client/dhclient.c	2014-07-10 17:50:26.922402550 +0200
 | ||||||
| @@ -1712,11 +1712,6 @@ int write_host (host)
 | @@ -1748,11 +1748,6 @@ int write_host (host)
 | ||||||
|  	return 0; |  	return 0; | ||||||
|  } |  } | ||||||
|   |   | ||||||
| @ -13,10 +13,10 @@ diff -up dhcp-4.3.0a1/client/dhclient.c.paranoia dhcp-4.3.0a1/client/dhclient.c | |||||||
|  void bootp (packet) |  void bootp (packet) | ||||||
|  	struct packet *packet; |  	struct packet *packet; | ||||||
|  { |  { | ||||||
| diff -up dhcp-4.3.0a1/includes/dhcpd.h.paranoia dhcp-4.3.0a1/includes/dhcpd.h
 | diff -up dhcp-4.3.1b1/includes/dhcpd.h.dlTsyN dhcp-4.3.1b1/includes/dhcpd.h
 | ||||||
| --- dhcp-4.3.0a1/includes/dhcpd.h.paranoia	2013-12-19 16:30:21.403211484 +0100
 | --- dhcp-4.3.1b1/includes/dhcpd.h.dlTsyN	2014-07-10 17:48:03.798424601 +0200
 | ||||||
| +++ dhcp-4.3.0a1/includes/dhcpd.h	2013-12-19 16:30:21.410211387 +0100
 | +++ dhcp-4.3.1b1/includes/dhcpd.h	2014-07-10 17:50:26.923402536 +0200
 | ||||||
| @@ -2851,7 +2851,11 @@ void commit_leases_timeout (void *);
 | @@ -2866,7 +2866,11 @@ void commit_leases_timeout (void *);
 | ||||||
|  void commit_leases_readerdry(void *); |  void commit_leases_readerdry(void *); | ||||||
|  int commit_leases (void); |  int commit_leases (void); | ||||||
|  int commit_leases_timed (void); |  int commit_leases_timed (void); | ||||||
| @ -28,10 +28,10 @@ diff -up dhcp-4.3.0a1/includes/dhcpd.h.paranoia dhcp-4.3.0a1/includes/dhcpd.h | |||||||
|  int new_lease_file (void); |  int new_lease_file (void); | ||||||
|  int group_writer (struct group_object *); |  int group_writer (struct group_object *); | ||||||
|  int write_ia(const struct ia_xx *); |  int write_ia(const struct ia_xx *); | ||||||
| diff -up dhcp-4.3.0a1/server/confpars.c.paranoia dhcp-4.3.0a1/server/confpars.c
 | diff -up dhcp-4.3.1b1/server/confpars.c.dlTsyN dhcp-4.3.1b1/server/confpars.c
 | ||||||
| --- dhcp-4.3.0a1/server/confpars.c.paranoia	2013-12-19 16:30:21.346212275 +0100
 | --- dhcp-4.3.1b1/server/confpars.c.dlTsyN	2014-07-10 17:39:25.801764596 +0200
 | ||||||
| +++ dhcp-4.3.0a1/server/confpars.c	2013-12-19 16:30:21.412211359 +0100
 | +++ dhcp-4.3.1b1/server/confpars.c	2014-07-10 17:50:26.924402522 +0200
 | ||||||
| @@ -225,7 +225,11 @@ void trace_conf_input (trace_type_t *tty
 | @@ -219,7 +219,11 @@ void trace_conf_input (trace_type_t *tty
 | ||||||
|  	} |  	} | ||||||
|   |   | ||||||
|  	if (!leaseconf_initialized && ttype == trace_readleases_type) { |  	if (!leaseconf_initialized && ttype == trace_readleases_type) { | ||||||
| @ -43,10 +43,10 @@ diff -up dhcp-4.3.0a1/server/confpars.c.paranoia dhcp-4.3.0a1/server/confpars.c | |||||||
|  		leaseconf_initialized = 1; |  		leaseconf_initialized = 1; | ||||||
|  		postdb_startup (); |  		postdb_startup (); | ||||||
|  	} |  	} | ||||||
| diff -up dhcp-4.3.0a1/server/db.c.paranoia dhcp-4.3.0a1/server/db.c
 | diff -up dhcp-4.3.1b1/server/db.c.dlTsyN dhcp-4.3.1b1/server/db.c
 | ||||||
| --- dhcp-4.3.0a1/server/db.c.paranoia	2013-12-19 16:30:21.346212275 +0100
 | --- dhcp-4.3.1b1/server/db.c.dlTsyN	2014-07-10 17:39:25.801764596 +0200
 | ||||||
| +++ dhcp-4.3.0a1/server/db.c	2013-12-19 16:30:21.412211359 +0100
 | +++ dhcp-4.3.1b1/server/db.c	2014-07-10 17:50:26.925402508 +0200
 | ||||||
| @@ -48,6 +48,10 @@ static int counting = 0;
 | @@ -42,6 +42,10 @@ static int counting = 0;
 | ||||||
|  static int count = 0; |  static int count = 0; | ||||||
|  TIME write_time; |  TIME write_time; | ||||||
|  int lease_file_is_corrupt = 0; |  int lease_file_is_corrupt = 0; | ||||||
| @ -57,7 +57,7 @@ diff -up dhcp-4.3.0a1/server/db.c.paranoia dhcp-4.3.0a1/server/db.c | |||||||
|   |   | ||||||
|  /* Write a single binding scope value in parsable format. |  /* Write a single binding scope value in parsable format. | ||||||
|   */ |   */ | ||||||
| @@ -1052,8 +1056,11 @@ int commit_leases_timed()
 | @@ -1046,8 +1050,11 @@ int commit_leases_timed()
 | ||||||
|  	return (1); |  	return (1); | ||||||
|  } |  } | ||||||
|   |   | ||||||
| @ -71,7 +71,7 @@ diff -up dhcp-4.3.0a1/server/db.c.paranoia dhcp-4.3.0a1/server/db.c | |||||||
|  { |  { | ||||||
|  	isc_result_t status; |  	isc_result_t status; | ||||||
|   |   | ||||||
| @@ -1072,6 +1079,11 @@ void db_startup (testp)
 | @@ -1066,6 +1073,11 @@ void db_startup (testp)
 | ||||||
|  	} |  	} | ||||||
|  #endif |  #endif | ||||||
|   |   | ||||||
| @ -83,7 +83,7 @@ diff -up dhcp-4.3.0a1/server/db.c.paranoia dhcp-4.3.0a1/server/db.c | |||||||
|  #if defined (TRACING) |  #if defined (TRACING) | ||||||
|  	/* If we're playing back, there is no lease file, so we can't |  	/* If we're playing back, there is no lease file, so we can't | ||||||
|  	   append it, so we create one immediately (maybe this isn't |  	   append it, so we create one immediately (maybe this isn't | ||||||
| @@ -1134,6 +1146,17 @@ int new_lease_file ()
 | @@ -1128,6 +1140,17 @@ int new_lease_file ()
 | ||||||
|  		log_error ("Can't create new lease file: %m"); |  		log_error ("Can't create new lease file: %m"); | ||||||
|  		return 0; |  		return 0; | ||||||
|  	} |  	} | ||||||
| @ -101,9 +101,9 @@ diff -up dhcp-4.3.0a1/server/db.c.paranoia dhcp-4.3.0a1/server/db.c | |||||||
|  	if ((new_db_file = fdopen(db_fd, "we")) == NULL) { |  	if ((new_db_file = fdopen(db_fd, "we")) == NULL) { | ||||||
|  		log_error("Can't fdopen new lease file: %m"); |  		log_error("Can't fdopen new lease file: %m"); | ||||||
|  		close(db_fd); |  		close(db_fd); | ||||||
| diff -up dhcp-4.3.0a1/server/dhcpd.8.paranoia dhcp-4.3.0a1/server/dhcpd.8
 | diff -up dhcp-4.3.1b1/server/dhcpd.8.dlTsyN dhcp-4.3.1b1/server/dhcpd.8
 | ||||||
| --- dhcp-4.3.0a1/server/dhcpd.8.paranoia	2013-12-11 01:01:03.000000000 +0100
 | --- dhcp-4.3.1b1/server/dhcpd.8.dlTsyN	2014-07-02 19:58:39.000000000 +0200
 | ||||||
| +++ dhcp-4.3.0a1/server/dhcpd.8	2013-12-19 16:30:21.413211345 +0100
 | +++ dhcp-4.3.1b1/server/dhcpd.8	2014-07-10 17:50:26.925402508 +0200
 | ||||||
| @@ -82,6 +82,18 @@ dhcpd - Dynamic Host Configuration Proto
 | @@ -82,6 +82,18 @@ dhcpd - Dynamic Host Configuration Proto
 | ||||||
|  .I trace-output-file |  .I trace-output-file | ||||||
|  ] |  ] | ||||||
| @ -139,10 +139,10 @@ diff -up dhcp-4.3.0a1/server/dhcpd.8.paranoia dhcp-4.3.0a1/server/dhcpd.8 | |||||||
|  .PP |  .PP | ||||||
|  .I Modifying default file locations: |  .I Modifying default file locations: | ||||||
|  The following options can be used to modify the locations  |  The following options can be used to modify the locations  | ||||||
| diff -up dhcp-4.3.0a1/server/dhcpd.c.paranoia dhcp-4.3.0a1/server/dhcpd.c
 | diff -up dhcp-4.3.1b1/server/dhcpd.c.dlTsyN dhcp-4.3.1b1/server/dhcpd.c
 | ||||||
| --- dhcp-4.3.0a1/server/dhcpd.c.paranoia	2013-12-19 16:30:21.347212261 +0100
 | --- dhcp-4.3.1b1/server/dhcpd.c.dlTsyN	2014-07-10 17:39:25.802764582 +0200
 | ||||||
| +++ dhcp-4.3.0a1/server/dhcpd.c	2013-12-19 16:30:21.414211331 +0100
 | +++ dhcp-4.3.1b1/server/dhcpd.c	2014-07-10 17:52:35.341588248 +0200
 | ||||||
| @@ -623,7 +623,11 @@ main(int argc, char **argv) {
 | @@ -628,7 +628,11 @@ main(int argc, char **argv) {
 | ||||||
|  	group_write_hook = group_writer; |  	group_write_hook = group_writer; | ||||||
|   |   | ||||||
|  	/* Start up the database... */ |  	/* Start up the database... */ | ||||||
| @ -154,49 +154,3 @@ diff -up dhcp-4.3.0a1/server/dhcpd.c.paranoia dhcp-4.3.0a1/server/dhcpd.c | |||||||
|   |   | ||||||
|  	if (lftest) |  	if (lftest) | ||||||
|  		exit (0); |  		exit (0); | ||||||
| @@ -694,22 +698,6 @@ main(int argc, char **argv) {
 |  | ||||||
|  			exit (0); |  | ||||||
|  	} |  | ||||||
|    |  | ||||||
| -#if defined (PARANOIA)
 |  | ||||||
| -	/* change uid to the specified one */
 |  | ||||||
| -
 |  | ||||||
| -	if (set_gid) {
 |  | ||||||
| -		if (setgroups (0, (void *)0))
 |  | ||||||
| -			log_fatal ("setgroups: %m");
 |  | ||||||
| -		if (setgid (set_gid))
 |  | ||||||
| -			log_fatal ("setgid(%d): %m", (int) set_gid);
 |  | ||||||
| -	}	
 |  | ||||||
| -
 |  | ||||||
| -	if (set_uid) {
 |  | ||||||
| -		if (setuid (set_uid))
 |  | ||||||
| -			log_fatal ("setuid(%d): %m", (int) set_uid);
 |  | ||||||
| -	}
 |  | ||||||
| -#endif /* PARANOIA */
 |  | ||||||
| -
 |  | ||||||
|  	/* |  | ||||||
|  	 * Deal with pid files.  If the user told us |  | ||||||
|  	 * not to write a file we don't read one either |  | ||||||
| @@ -746,6 +734,22 @@ main(int argc, char **argv) {
 |  | ||||||
|  		} |  | ||||||
|  	} |  | ||||||
|   |  | ||||||
| +#if defined (PARANOIA)
 |  | ||||||
| +	/* change uid to the specified one */
 |  | ||||||
| +
 |  | ||||||
| +	if (set_gid) {
 |  | ||||||
| +		if (setgroups (0, (void *)0))
 |  | ||||||
| +			log_fatal ("setgroups: %m");
 |  | ||||||
| +		if (setgid (set_gid))
 |  | ||||||
| +			log_fatal ("setgid(%d): %m", (int) set_gid);
 |  | ||||||
| +	}	
 |  | ||||||
| +
 |  | ||||||
| +	if (set_uid) {
 |  | ||||||
| +		if (setuid (set_uid))
 |  | ||||||
| +			log_fatal ("setuid(%d): %m", (int) set_uid);
 |  | ||||||
| +	}
 |  | ||||||
| +#endif /* PARANOIA */
 |  | ||||||
| +
 |  | ||||||
|  	/* If we were requested to log to stdout on the command line, |  | ||||||
|  	   keep doing so; otherwise, stop. */ |  | ||||||
|  	if (log_perror == -1) |  | ||||||
|  | |||||||
| @ -1,25 +1,7 @@ | |||||||
| diff -up dhcp-4.3.0a1/Makefile.am.remove-bind dhcp-4.3.0a1/Makefile.am
 | diff -up dhcp-4.3.1b1/client/Makefile.am.brGmwh dhcp-4.3.1b1/client/Makefile.am
 | ||||||
| --- dhcp-4.3.0a1/Makefile.am.remove-bind	2013-12-13 21:49:44.000000000 +0100
 | --- dhcp-4.3.1b1/client/Makefile.am.brGmwh	2014-07-02 19:58:38.000000000 +0200
 | ||||||
| +++ dhcp-4.3.0a1/Makefile.am	2013-12-19 14:23:48.907263942 +0100
 | +++ dhcp-4.3.1b1/client/Makefile.am	2014-07-10 17:36:30.484250976 +0200
 | ||||||
| @@ -25,7 +25,13 @@ EXTRA_DIST = RELNOTES LICENSE \
 | @@ -10,8 +10,8 @@ dhclient_SOURCES = clparse.c dhclient.c
 | ||||||
|  	     bind/Makefile bind/bind.tar.gz bind/version.tmp \ |  | ||||||
|  	     common/tests/Atffile server/tests/Atffile |  | ||||||
|   |  | ||||||
| -SUBDIRS = bind includes tests common dst omapip client dhcpctl relay server
 |  | ||||||
| +if BUNDLED_BIND
 |  | ||||||
| +SUBDIRS = bind
 |  | ||||||
| +else
 |  | ||||||
| +SUBDIRS = 
 |  | ||||||
| +endif
 |  | ||||||
| +
 |  | ||||||
| +SUBDIRS += includes tests common dst omapip client dhcpctl relay server
 |  | ||||||
|   |  | ||||||
|  nobase_include_HEADERS = dhcpctl/dhcpctl.h |  | ||||||
|   |  | ||||||
| diff -up dhcp-4.3.0a1/client/Makefile.am.remove-bind dhcp-4.3.0a1/client/Makefile.am
 |  | ||||||
| --- dhcp-4.3.0a1/client/Makefile.am.remove-bind	2013-12-19 14:23:48.904263983 +0100
 |  | ||||||
| +++ dhcp-4.3.0a1/client/Makefile.am	2013-12-19 14:32:27.845095985 +0100
 |  | ||||||
| @@ -4,8 +4,8 @@ dhclient_SOURCES = clparse.c dhclient.c
 |  | ||||||
|  		   scripts/bsdos scripts/freebsd scripts/linux scripts/macos \ |  		   scripts/bsdos scripts/freebsd scripts/linux scripts/macos \ | ||||||
|  		   scripts/netbsd scripts/nextstep scripts/openbsd \ |  		   scripts/netbsd scripts/nextstep scripts/openbsd \ | ||||||
|  		   scripts/solaris scripts/openwrt |  		   scripts/solaris scripts/openwrt | ||||||
| @ -30,10 +12,10 @@ diff -up dhcp-4.3.0a1/client/Makefile.am.remove-bind dhcp-4.3.0a1/client/Makefil | |||||||
|  man_MANS = dhclient.8 dhclient-script.8 dhclient.conf.5 dhclient.leases.5 |  man_MANS = dhclient.8 dhclient-script.8 dhclient.conf.5 dhclient.leases.5 | ||||||
|  EXTRA_DIST = $(man_MANS) |  EXTRA_DIST = $(man_MANS) | ||||||
|   |   | ||||||
| diff -up dhcp-4.3.0a1/common/tests/Makefile.am.remove-bind dhcp-4.3.0a1/common/tests/Makefile.am
 | diff -up dhcp-4.3.1b1/common/tests/Makefile.am.brGmwh dhcp-4.3.1b1/common/tests/Makefile.am
 | ||||||
| --- dhcp-4.3.0a1/common/tests/Makefile.am.remove-bind	2013-12-19 14:23:48.905263969 +0100
 | --- dhcp-4.3.1b1/common/tests/Makefile.am.brGmwh	2014-07-10 17:36:30.485250962 +0200
 | ||||||
| +++ dhcp-4.3.0a1/common/tests/Makefile.am	2013-12-19 14:33:01.260634412 +0100
 | +++ dhcp-4.3.1b1/common/tests/Makefile.am	2014-07-10 17:38:04.010924566 +0200
 | ||||||
| @@ -13,15 +13,14 @@ ATF_TESTS += alloc_unittest dns_unittest
 | @@ -13,21 +13,20 @@ ATF_TESTS += alloc_unittest dns_unittest
 | ||||||
|  alloc_unittest_SOURCES = test_alloc.c $(top_srcdir)/tests/t_api_dhcp.c |  alloc_unittest_SOURCES = test_alloc.c $(top_srcdir)/tests/t_api_dhcp.c | ||||||
|  alloc_unittest_LDADD = $(ATF_LDFLAGS) |  alloc_unittest_LDADD = $(ATF_LDFLAGS) | ||||||
|  alloc_unittest_LDADD += ../libdhcp.a  \ |  alloc_unittest_LDADD += ../libdhcp.a  \ | ||||||
| @ -47,16 +29,24 @@ diff -up dhcp-4.3.0a1/common/tests/Makefile.am.remove-bind dhcp-4.3.0a1/common/t | |||||||
|  dns_unittest_LDADD += ../libdhcp.a  \ |  dns_unittest_LDADD += ../libdhcp.a  \ | ||||||
| -	../../omapip/libomapi.a ../../bind/lib/libirs.a \
 | -	../../omapip/libomapi.a ../../bind/lib/libirs.a \
 | ||||||
| -	../../bind/lib/libdns.a ../../bind/lib/libisccfg.a  ../../bind/lib/libisc.a
 | -	../../bind/lib/libdns.a ../../bind/lib/libisccfg.a  ../../bind/lib/libisc.a
 | ||||||
|  | +	../../omapip/libomapi.a \
 | ||||||
|  | +	$(BIND9_LIBDIR) -lirs-export -ldns-export -lisccfg-export -lisc-export
 | ||||||
|  |   | ||||||
|  |  misc_unittest_SOURCES = misc_unittest.c $(top_srcdir)/tests/t_api_dhcp.c | ||||||
|  |  misc_unittest_LDADD = $(ATF_LDFLAGS) | ||||||
|  |  misc_unittest_LDADD += ../libdhcp.a  \ | ||||||
|  | -	../../omapip/libomapi.a ../../bind/lib/libirs.a \
 | ||||||
|  | -	../../bind/lib/libdns.a ../../bind/lib/libisccfg.a  ../../bind/lib/libisc.a
 | ||||||
| -
 | -
 | ||||||
| +	../../omapip/libomapi.a \
 | +	../../omapip/libomapi.a \
 | ||||||
| +	$(BIND9_LIBDIR) -lirs-export -ldns-export -lisccfg-export -lisc-export
 | +	$(BIND9_LIBDIR) -lirs-export -ldns-export -lisccfg-export -lisc-export
 | ||||||
|  check: $(ATF_TESTS) |  check: $(ATF_TESTS) | ||||||
|  	atf-run | atf-report |  	atf-run | atf-report | ||||||
|   |   | ||||||
| diff -up dhcp-4.3.0a1/configure.ac.remove-bind dhcp-4.3.0a1/configure.ac
 | diff -up dhcp-4.3.1b1/configure.ac.brGmwh dhcp-4.3.1b1/configure.ac
 | ||||||
| --- dhcp-4.3.0a1/configure.ac.remove-bind	2013-12-19 14:23:48.906263956 +0100
 | --- dhcp-4.3.1b1/configure.ac.brGmwh	2014-07-02 20:01:26.000000000 +0200
 | ||||||
| +++ dhcp-4.3.0a1/configure.ac	2013-12-19 14:37:44.358723889 +0100
 | +++ dhcp-4.3.1b1/configure.ac	2014-07-10 17:36:30.485250962 +0200
 | ||||||
| @@ -552,20 +552,37 @@ AC_CHECK_MEMBER(struct msghdr.msg_contro
 | @@ -562,20 +562,37 @@ AC_CHECK_MEMBER(struct msghdr.msg_contro
 | ||||||
|   |   | ||||||
|  libbind= |  libbind= | ||||||
|  AC_ARG_WITH(libbind, |  AC_ARG_WITH(libbind, | ||||||
| @ -99,7 +89,7 @@ diff -up dhcp-4.3.0a1/configure.ac.remove-bind dhcp-4.3.0a1/configure.ac | |||||||
|   |   | ||||||
|  # OpenLDAP support. |  # OpenLDAP support. | ||||||
|  AC_ARG_WITH(ldap, |  AC_ARG_WITH(ldap, | ||||||
| @@ -600,7 +617,7 @@ fi
 | @@ -610,7 +627,7 @@ fi
 | ||||||
|  CFLAGS="$CFLAGS $STD_CWARNINGS" |  CFLAGS="$CFLAGS $STD_CWARNINGS" | ||||||
|   |   | ||||||
|  # Try to add the bind include directory |  # Try to add the bind include directory | ||||||
| @ -108,9 +98,9 @@ diff -up dhcp-4.3.0a1/configure.ac.remove-bind dhcp-4.3.0a1/configure.ac | |||||||
|   |   | ||||||
|  case "$host" in |  case "$host" in | ||||||
|  *-darwin*) |  *-darwin*) | ||||||
| diff -up dhcp-4.3.0a1/dhcpctl/Makefile.am.remove-bind dhcp-4.3.0a1/dhcpctl/Makefile.am
 | diff -up dhcp-4.3.1b1/dhcpctl/Makefile.am.brGmwh dhcp-4.3.1b1/dhcpctl/Makefile.am
 | ||||||
| --- dhcp-4.3.0a1/dhcpctl/Makefile.am.remove-bind	2013-12-19 14:23:48.906263956 +0100
 | --- dhcp-4.3.1b1/dhcpctl/Makefile.am.brGmwh	2014-07-02 19:58:38.000000000 +0200
 | ||||||
| +++ dhcp-4.3.0a1/dhcpctl/Makefile.am	2013-12-19 14:40:06.497754274 +0100
 | +++ dhcp-4.3.1b1/dhcpctl/Makefile.am	2014-07-10 17:36:30.485250962 +0200
 | ||||||
| @@ -6,12 +6,9 @@ EXTRA_DIST = $(man_MANS)
 | @@ -6,12 +6,9 @@ EXTRA_DIST = $(man_MANS)
 | ||||||
|   |   | ||||||
|  omshell_SOURCES = omshell.c |  omshell_SOURCES = omshell.c | ||||||
| @ -126,9 +116,27 @@ diff -up dhcp-4.3.0a1/dhcpctl/Makefile.am.remove-bind dhcp-4.3.0a1/dhcpctl/Makef | |||||||
| -	       ../bind/lib/libirs.a ../bind/lib/libdns.a \
 | -	       ../bind/lib/libirs.a ../bind/lib/libdns.a \
 | ||||||
| -               ../bind/lib/libisccfg.a ../bind/lib/libisc.a
 | -               ../bind/lib/libisccfg.a ../bind/lib/libisc.a
 | ||||||
| +	       $(BIND9_LIBDIR) -lirs-export -ldns-export -lisccfg-export -lisc-export
 | +	       $(BIND9_LIBDIR) -lirs-export -ldns-export -lisccfg-export -lisc-export
 | ||||||
| diff -up dhcp-4.3.0a1/omapip/Makefile.am.remove-bind dhcp-4.3.0a1/omapip/Makefile.am
 | diff -up dhcp-4.3.1b1/Makefile.am.brGmwh dhcp-4.3.1b1/Makefile.am
 | ||||||
| --- dhcp-4.3.0a1/omapip/Makefile.am.remove-bind	2013-12-19 14:23:48.908263928 +0100
 | --- dhcp-4.3.1b1/Makefile.am.brGmwh	2014-07-02 19:58:38.000000000 +0200
 | ||||||
| +++ dhcp-4.3.0a1/omapip/Makefile.am	2013-12-19 14:40:51.440118923 +0100
 | +++ dhcp-4.3.1b1/Makefile.am	2014-07-10 17:36:30.484250976 +0200
 | ||||||
|  | @@ -25,7 +25,13 @@ EXTRA_DIST = RELNOTES LICENSE \
 | ||||||
|  |  	     bind/Makefile bind/bind.tar.gz bind/version.tmp \ | ||||||
|  |  	     common/tests/Atffile server/tests/Atffile | ||||||
|  |   | ||||||
|  | -SUBDIRS = bind includes tests common dst omapip client dhcpctl relay server
 | ||||||
|  | +if BUNDLED_BIND
 | ||||||
|  | +SUBDIRS = bind
 | ||||||
|  | +else
 | ||||||
|  | +SUBDIRS = 
 | ||||||
|  | +endif
 | ||||||
|  | +
 | ||||||
|  | +SUBDIRS += includes tests common dst omapip client dhcpctl relay server
 | ||||||
|  |   | ||||||
|  |  nobase_include_HEADERS = dhcpctl/dhcpctl.h | ||||||
|  |   | ||||||
|  | diff -up dhcp-4.3.1b1/omapip/Makefile.am.brGmwh dhcp-4.3.1b1/omapip/Makefile.am
 | ||||||
|  | --- dhcp-4.3.1b1/omapip/Makefile.am.brGmwh	2014-07-02 19:58:39.000000000 +0200
 | ||||||
|  | +++ dhcp-4.3.1b1/omapip/Makefile.am	2014-07-10 17:36:30.486250948 +0200
 | ||||||
| @@ -10,6 +10,5 @@ man_MANS = omapi.3
 | @@ -10,6 +10,5 @@ man_MANS = omapi.3
 | ||||||
|  EXTRA_DIST = $(man_MANS) |  EXTRA_DIST = $(man_MANS) | ||||||
|   |   | ||||||
| @ -138,9 +146,9 @@ diff -up dhcp-4.3.0a1/omapip/Makefile.am.remove-bind dhcp-4.3.0a1/omapip/Makefil | |||||||
| -
 | -
 | ||||||
| +svtest_LDADD = libomapi.a \
 | +svtest_LDADD = libomapi.a \
 | ||||||
| +	       $(BIND9_LIBDIR) -lirs-export -ldns-export -lisccfg-export -lisc-export
 | +	       $(BIND9_LIBDIR) -lirs-export -ldns-export -lisccfg-export -lisc-export
 | ||||||
| diff -up dhcp-4.3.0a1/relay/Makefile.am.remove-bind dhcp-4.3.0a1/relay/Makefile.am
 | diff -up dhcp-4.3.1b1/relay/Makefile.am.brGmwh dhcp-4.3.1b1/relay/Makefile.am
 | ||||||
| --- dhcp-4.3.0a1/relay/Makefile.am.remove-bind	2013-12-19 14:23:48.908263928 +0100
 | --- dhcp-4.3.1b1/relay/Makefile.am.brGmwh	2014-07-02 19:58:39.000000000 +0200
 | ||||||
| +++ dhcp-4.3.0a1/relay/Makefile.am	2013-12-19 14:41:27.302612345 +0100
 | +++ dhcp-4.3.1b1/relay/Makefile.am	2014-07-10 17:36:30.486250948 +0200
 | ||||||
| @@ -3,8 +3,7 @@ AM_CPPFLAGS = -DLOCALSTATEDIR='"@localst
 | @@ -3,8 +3,7 @@ AM_CPPFLAGS = -DLOCALSTATEDIR='"@localst
 | ||||||
|  sbin_PROGRAMS = dhcrelay |  sbin_PROGRAMS = dhcrelay | ||||||
|  dhcrelay_SOURCES = dhcrelay.c |  dhcrelay_SOURCES = dhcrelay.c | ||||||
| @ -151,9 +159,9 @@ diff -up dhcp-4.3.0a1/relay/Makefile.am.remove-bind dhcp-4.3.0a1/relay/Makefile. | |||||||
|  man_MANS = dhcrelay.8 |  man_MANS = dhcrelay.8 | ||||||
|  EXTRA_DIST = $(man_MANS) |  EXTRA_DIST = $(man_MANS) | ||||||
|   |   | ||||||
| diff -up dhcp-4.3.0a1/server/Makefile.am.remove-bind dhcp-4.3.0a1/server/Makefile.am
 | diff -up dhcp-4.3.1b1/server/Makefile.am.brGmwh dhcp-4.3.1b1/server/Makefile.am
 | ||||||
| --- dhcp-4.3.0a1/server/Makefile.am.remove-bind	2013-12-19 14:23:48.910263900 +0100
 | --- dhcp-4.3.1b1/server/Makefile.am.brGmwh	2014-07-02 19:58:39.000000000 +0200
 | ||||||
| +++ dhcp-4.3.0a1/server/Makefile.am	2013-12-19 14:42:18.065895883 +0100
 | +++ dhcp-4.3.1b1/server/Makefile.am	2014-07-10 17:36:30.486250948 +0200
 | ||||||
| @@ -13,10 +13,8 @@ dhcpd_SOURCES = dhcpd.c dhcp.c bootp.c c
 | @@ -13,10 +13,8 @@ dhcpd_SOURCES = dhcpd.c dhcp.c bootp.c c
 | ||||||
|  		dhcpv6.c mdb6.c ldap.c ldap_casa.c |  		dhcpv6.c mdb6.c ldap.c ldap_casa.c | ||||||
|   |   | ||||||
| @ -167,9 +175,9 @@ diff -up dhcp-4.3.0a1/server/Makefile.am.remove-bind dhcp-4.3.0a1/server/Makefil | |||||||
|  man_MANS = dhcpd.8 dhcpd.conf.5 dhcpd.leases.5 |  man_MANS = dhcpd.8 dhcpd.conf.5 dhcpd.leases.5 | ||||||
|  EXTRA_DIST = $(man_MANS) |  EXTRA_DIST = $(man_MANS) | ||||||
|   |   | ||||||
| diff -up dhcp-4.3.0a1/server/tests/Makefile.am.remove-bind dhcp-4.3.0a1/server/tests/Makefile.am
 | diff -up dhcp-4.3.1b1/server/tests/Makefile.am.brGmwh dhcp-4.3.1b1/server/tests/Makefile.am
 | ||||||
| --- dhcp-4.3.0a1/server/tests/Makefile.am.remove-bind	2013-12-19 14:23:48.911263886 +0100
 | --- dhcp-4.3.1b1/server/tests/Makefile.am.brGmwh	2014-07-02 19:58:40.000000000 +0200
 | ||||||
| +++ dhcp-4.3.0a1/server/tests/Makefile.am	2013-12-19 14:43:32.943840285 +0100
 | +++ dhcp-4.3.1b1/server/tests/Makefile.am	2014-07-10 17:36:30.486250948 +0200
 | ||||||
| @@ -18,9 +18,8 @@ DHCPSRC = ../dhcp.c ../bootp.c ../confpa
 | @@ -18,9 +18,8 @@ DHCPSRC = ../dhcp.c ../bootp.c ../confpa
 | ||||||
|            ../ldap.c ../ldap_casa.c ../dhcpd.c |            ../ldap.c ../ldap_casa.c ../dhcpd.c | ||||||
|   |   | ||||||
|  | |||||||
| @ -1,48 +0,0 @@ | |||||||
| diff -up dhcp-4.3.0a1/client/dhc6.c.retransmission dhcp-4.3.0a1/client/dhc6.c
 |  | ||||||
| --- dhcp-4.3.0a1/client/dhc6.c.retransmission	2013-12-19 15:57:09.629945386 +0100
 |  | ||||||
| +++ dhcp-4.3.0a1/client/dhc6.c	2013-12-19 15:57:09.634945316 +0100
 |  | ||||||
| @@ -302,7 +302,7 @@ dhc6_retrans_init(struct client_state *c
 |  | ||||||
|  static void |  | ||||||
|  dhc6_retrans_advance(struct client_state *client) |  | ||||||
|  { |  | ||||||
| -	struct timeval elapsed;
 |  | ||||||
| +	struct timeval elapsed, elapsed_after_RT;
 |  | ||||||
|   |  | ||||||
|  	/* elapsed = cur - start */ |  | ||||||
|  	elapsed.tv_sec = cur_tv.tv_sec - client->start_time.tv_sec; |  | ||||||
| @@ -319,6 +319,8 @@ dhc6_retrans_advance(struct client_state
 |  | ||||||
|  		elapsed.tv_sec += 1; |  | ||||||
|  		elapsed.tv_usec -= 1000000; |  | ||||||
|  	} |  | ||||||
| +	elapsed_after_RT.tv_sec = elapsed.tv_sec;
 |  | ||||||
| +	elapsed_after_RT.tv_usec = elapsed.tv_usec;
 |  | ||||||
|   |  | ||||||
|  	/* |  | ||||||
|  	 * RT for each subsequent message transmission is based on the previous |  | ||||||
| @@ -356,13 +358,10 @@ dhc6_retrans_advance(struct client_state
 |  | ||||||
|  		elapsed.tv_usec -= 1000000; |  | ||||||
|  	} |  | ||||||
|  	if (elapsed.tv_sec >= client->MRD) { |  | ||||||
| -		/*
 |  | ||||||
| -		 * wake at RT + cur = start + MRD
 |  | ||||||
| -		 */
 |  | ||||||
| -		client->RT = client->MRD +
 |  | ||||||
| -			(client->start_time.tv_sec - cur_tv.tv_sec);
 |  | ||||||
| -		client->RT = client->RT * 100 +
 |  | ||||||
| -			(client->start_time.tv_usec - cur_tv.tv_usec) / 10000;
 |  | ||||||
| +		client->RT = client->MRD - elapsed_after_RT.tv_sec;
 |  | ||||||
| +		client->RT = client->RT * 100 - elapsed_after_RT.tv_usec / 10000;
 |  | ||||||
| +		if (client->RT < 0)
 |  | ||||||
| +			client->RT = 0;
 |  | ||||||
|  	} |  | ||||||
|  	client->txcount++; |  | ||||||
|  } |  | ||||||
| @@ -1439,7 +1438,7 @@ check_timing6 (struct client_state *clie
 |  | ||||||
|  	} |  | ||||||
|   |  | ||||||
|  	/* Check if finished (-1 argument). */ |  | ||||||
| -	if ((client->MRD != 0) && (elapsed.tv_sec > client->MRD)) {
 |  | ||||||
| +	if ((client->MRD != 0) && (elapsed.tv_sec >= client->MRD)) {
 |  | ||||||
|  		log_info("Max retransmission duration exceeded."); |  | ||||||
|  		return(CHK_TIM_MRD_EXCEEDED); |  | ||||||
|  	} |  | ||||||
| @ -1,7 +1,7 @@ | |||||||
| diff -up dhcp-4.3.0a1/client/Makefile.am.sharedlib dhcp-4.3.0a1/client/Makefile.am
 | diff -up dhcp-4.3.1b1/client/Makefile.am.uCWMBl dhcp-4.3.1b1/client/Makefile.am
 | ||||||
| --- dhcp-4.3.0a1/client/Makefile.am.sharedlib	2013-12-20 14:23:14.303534850 +0100
 | --- dhcp-4.3.1b1/client/Makefile.am.uCWMBl	2014-07-10 17:36:30.484250976 +0200
 | ||||||
| +++ dhcp-4.3.0a1/client/Makefile.am	2013-12-20 14:23:14.312534725 +0100
 | +++ dhcp-4.3.1b1/client/Makefile.am	2014-07-10 17:38:10.778828583 +0200
 | ||||||
| @@ -4,7 +4,7 @@ dhclient_SOURCES = clparse.c dhclient.c
 | @@ -10,7 +10,7 @@ dhclient_SOURCES = clparse.c dhclient.c
 | ||||||
|  		   scripts/bsdos scripts/freebsd scripts/linux scripts/macos \ |  		   scripts/bsdos scripts/freebsd scripts/linux scripts/macos \ | ||||||
|  		   scripts/netbsd scripts/nextstep scripts/openbsd \ |  		   scripts/netbsd scripts/nextstep scripts/openbsd \ | ||||||
|  		   scripts/solaris scripts/openwrt |  		   scripts/solaris scripts/openwrt | ||||||
| @ -10,10 +10,10 @@ diff -up dhcp-4.3.0a1/client/Makefile.am.sharedlib dhcp-4.3.0a1/client/Makefile. | |||||||
|  		 $(BIND9_LIBDIR) -lirs-export -ldns-export -lisccfg-export -lisc-export |  		 $(BIND9_LIBDIR) -lirs-export -ldns-export -lisccfg-export -lisc-export | ||||||
|  man_MANS = dhclient.8 dhclient-script.8 dhclient.conf.5 dhclient.leases.5 |  man_MANS = dhclient.8 dhclient-script.8 dhclient.conf.5 dhclient.leases.5 | ||||||
|  EXTRA_DIST = $(man_MANS) |  EXTRA_DIST = $(man_MANS) | ||||||
| diff -up dhcp-4.3.0a1/common/tests/Makefile.am.sharedlib dhcp-4.3.0a1/common/tests/Makefile.am
 | diff -up dhcp-4.3.1b1/common/tests/Makefile.am.uCWMBl dhcp-4.3.1b1/common/tests/Makefile.am
 | ||||||
| --- dhcp-4.3.0a1/common/tests/Makefile.am.sharedlib	2013-12-20 14:23:14.304534836 +0100
 | --- dhcp-4.3.1b1/common/tests/Makefile.am.uCWMBl	2014-07-10 17:38:10.779828569 +0200
 | ||||||
| +++ dhcp-4.3.0a1/common/tests/Makefile.am	2013-12-20 14:23:14.313534711 +0100
 | +++ dhcp-4.3.1b1/common/tests/Makefile.am	2014-07-10 17:38:21.355678580 +0200
 | ||||||
| @@ -13,13 +13,13 @@ ATF_TESTS += alloc_unittest dns_unittest
 | @@ -13,19 +13,19 @@ ATF_TESTS += alloc_unittest dns_unittest
 | ||||||
|  alloc_unittest_SOURCES = test_alloc.c $(top_srcdir)/tests/t_api_dhcp.c |  alloc_unittest_SOURCES = test_alloc.c $(top_srcdir)/tests/t_api_dhcp.c | ||||||
|  alloc_unittest_LDADD = $(ATF_LDFLAGS) |  alloc_unittest_LDADD = $(ATF_LDFLAGS) | ||||||
|  alloc_unittest_LDADD += ../libdhcp.a  \ |  alloc_unittest_LDADD += ../libdhcp.a  \ | ||||||
| @ -23,15 +23,22 @@ diff -up dhcp-4.3.0a1/common/tests/Makefile.am.sharedlib dhcp-4.3.0a1/common/tes | |||||||
|   |   | ||||||
|  dns_unittest_SOURCES = dns_unittest.c $(top_srcdir)/tests/t_api_dhcp.c |  dns_unittest_SOURCES = dns_unittest.c $(top_srcdir)/tests/t_api_dhcp.c | ||||||
|  dns_unittest_LDADD = $(ATF_LDFLAGS) |  dns_unittest_LDADD = $(ATF_LDFLAGS) | ||||||
|  dns_unittest_LDADD += ../libdhcp.a  \ | -dns_unittest_LDADD += ../libdhcp.a  \
 | ||||||
|  | +dns_unittest_LDADD += ../libdhcp.la  \
 | ||||||
|  |  	../../omapip/libomapi.a \ | ||||||
|  |  	$(BIND9_LIBDIR) -lirs-export -ldns-export -lisccfg-export -lisc-export | ||||||
|  |   | ||||||
|  |  misc_unittest_SOURCES = misc_unittest.c $(top_srcdir)/tests/t_api_dhcp.c | ||||||
|  |  misc_unittest_LDADD = $(ATF_LDFLAGS) | ||||||
|  |  misc_unittest_LDADD += ../libdhcp.a  \ | ||||||
| -	../../omapip/libomapi.a \
 | -	../../omapip/libomapi.a \
 | ||||||
| +	../../omapip/libomapi.la \
 | +	../../omapip/libomapi.la \
 | ||||||
|  	$(BIND9_LIBDIR) -lirs-export -ldns-export -lisccfg-export -lisc-export |  	$(BIND9_LIBDIR) -lirs-export -ldns-export -lisccfg-export -lisc-export | ||||||
|  check: $(ATF_TESTS) |  check: $(ATF_TESTS) | ||||||
|  	atf-run | atf-report |  	atf-run | atf-report | ||||||
| diff -up dhcp-4.3.0a1/configure.ac.sharedlib dhcp-4.3.0a1/configure.ac
 | diff -up dhcp-4.3.1b1/configure.ac.uCWMBl dhcp-4.3.1b1/configure.ac
 | ||||||
| --- dhcp-4.3.0a1/configure.ac.sharedlib	2013-12-20 14:23:14.308534781 +0100
 | --- dhcp-4.3.1b1/configure.ac.uCWMBl	2014-07-10 17:38:10.766828753 +0200
 | ||||||
| +++ dhcp-4.3.0a1/configure.ac	2013-12-20 14:23:14.313534711 +0100
 | +++ dhcp-4.3.1b1/configure.ac	2014-07-10 17:38:10.779828569 +0200
 | ||||||
| @@ -39,7 +39,8 @@ fi
 | @@ -39,7 +39,8 @@ fi
 | ||||||
|  # Use this to define _GNU_SOURCE to pull in the IPv6 Advanced Socket API. |  # Use this to define _GNU_SOURCE to pull in the IPv6 Advanced Socket API. | ||||||
|  AC_USE_SYSTEM_EXTENSIONS |  AC_USE_SYSTEM_EXTENSIONS | ||||||
| @ -42,9 +49,9 @@ diff -up dhcp-4.3.0a1/configure.ac.sharedlib dhcp-4.3.0a1/configure.ac | |||||||
|  AC_CONFIG_HEADERS([includes/config.h]) |  AC_CONFIG_HEADERS([includes/config.h]) | ||||||
|   |   | ||||||
|  # we sometimes need to know byte order for building packets |  # we sometimes need to know byte order for building packets | ||||||
| diff -up dhcp-4.3.0a1/dhcpctl/Makefile.am.sharedlib dhcp-4.3.0a1/dhcpctl/Makefile.am
 | diff -up dhcp-4.3.1b1/dhcpctl/Makefile.am.uCWMBl dhcp-4.3.1b1/dhcpctl/Makefile.am
 | ||||||
| --- dhcp-4.3.0a1/dhcpctl/Makefile.am.sharedlib	2013-12-20 14:23:14.304534836 +0100
 | --- dhcp-4.3.1b1/dhcpctl/Makefile.am.uCWMBl	2014-07-10 17:36:30.485250962 +0200
 | ||||||
| +++ dhcp-4.3.0a1/dhcpctl/Makefile.am	2013-12-20 14:23:21.998428024 +0100
 | +++ dhcp-4.3.1b1/dhcpctl/Makefile.am	2014-07-10 17:38:10.780828554 +0200
 | ||||||
| @@ -1,14 +1,14 @@
 | @@ -1,14 +1,14 @@
 | ||||||
|  bin_PROGRAMS = omshell |  bin_PROGRAMS = omshell | ||||||
| -lib_LIBRARIES = libdhcpctl.a
 | -lib_LIBRARIES = libdhcpctl.a
 | ||||||
| @ -64,9 +71,9 @@ diff -up dhcp-4.3.0a1/dhcpctl/Makefile.am.sharedlib dhcp-4.3.0a1/dhcpctl/Makefil | |||||||
| -cltest_LDADD = libdhcpctl.a ../common/libdhcp.a ../omapip/libomapi.a \
 | -cltest_LDADD = libdhcpctl.a ../common/libdhcp.a ../omapip/libomapi.a \
 | ||||||
| +cltest_LDADD = libdhcpctl.la ../common/libdhcp.a ../omapip/libomapi.la \
 | +cltest_LDADD = libdhcpctl.la ../common/libdhcp.a ../omapip/libomapi.la \
 | ||||||
|  	       $(BIND9_LIBDIR) -lirs-export -ldns-export -lisccfg-export -lisc-export |  	       $(BIND9_LIBDIR) -lirs-export -ldns-export -lisccfg-export -lisc-export | ||||||
| diff -up dhcp-4.3.0a1/omapip/Makefile.am.sharedlib dhcp-4.3.0a1/omapip/Makefile.am
 | diff -up dhcp-4.3.1b1/omapip/Makefile.am.uCWMBl dhcp-4.3.1b1/omapip/Makefile.am
 | ||||||
| --- dhcp-4.3.0a1/omapip/Makefile.am.sharedlib	2013-12-20 14:23:14.304534836 +0100
 | --- dhcp-4.3.1b1/omapip/Makefile.am.uCWMBl	2014-07-10 17:36:30.486250948 +0200
 | ||||||
| +++ dhcp-4.3.0a1/omapip/Makefile.am	2013-12-20 14:23:14.313534711 +0100
 | +++ dhcp-4.3.1b1/omapip/Makefile.am	2014-07-10 17:38:10.780828554 +0200
 | ||||||
| @@ -1,7 +1,7 @@
 | @@ -1,7 +1,7 @@
 | ||||||
| -lib_LIBRARIES = libomapi.a
 | -lib_LIBRARIES = libomapi.a
 | ||||||
| +lib_LTLIBRARIES = libomapi.la
 | +lib_LTLIBRARIES = libomapi.la
 | ||||||
| @ -84,9 +91,9 @@ diff -up dhcp-4.3.0a1/omapip/Makefile.am.sharedlib dhcp-4.3.0a1/omapip/Makefile. | |||||||
| -svtest_LDADD = libomapi.a \
 | -svtest_LDADD = libomapi.a \
 | ||||||
| +svtest_LDADD = libomapi.la \
 | +svtest_LDADD = libomapi.la \
 | ||||||
|  	       $(BIND9_LIBDIR) -lirs-export -ldns-export -lisccfg-export -lisc-export |  	       $(BIND9_LIBDIR) -lirs-export -ldns-export -lisccfg-export -lisc-export | ||||||
| diff -up dhcp-4.3.0a1/relay/Makefile.am.sharedlib dhcp-4.3.0a1/relay/Makefile.am
 | diff -up dhcp-4.3.1b1/relay/Makefile.am.uCWMBl dhcp-4.3.1b1/relay/Makefile.am
 | ||||||
| --- dhcp-4.3.0a1/relay/Makefile.am.sharedlib	2013-12-20 14:23:14.305534822 +0100
 | --- dhcp-4.3.1b1/relay/Makefile.am.uCWMBl	2014-07-10 17:36:30.486250948 +0200
 | ||||||
| +++ dhcp-4.3.0a1/relay/Makefile.am	2013-12-20 14:23:14.314534697 +0100
 | +++ dhcp-4.3.1b1/relay/Makefile.am	2014-07-10 17:38:10.780828554 +0200
 | ||||||
| @@ -2,7 +2,7 @@ AM_CPPFLAGS = -DLOCALSTATEDIR='"@localst
 | @@ -2,7 +2,7 @@ AM_CPPFLAGS = -DLOCALSTATEDIR='"@localst
 | ||||||
|   |   | ||||||
|  sbin_PROGRAMS = dhcrelay |  sbin_PROGRAMS = dhcrelay | ||||||
| @ -96,9 +103,9 @@ diff -up dhcp-4.3.0a1/relay/Makefile.am.sharedlib dhcp-4.3.0a1/relay/Makefile.am | |||||||
|  		 $(BIND9_LIBDIR) -lirs-export -ldns-export -lisccfg-export -lisc-export |  		 $(BIND9_LIBDIR) -lirs-export -ldns-export -lisccfg-export -lisc-export | ||||||
|  man_MANS = dhcrelay.8 |  man_MANS = dhcrelay.8 | ||||||
|  EXTRA_DIST = $(man_MANS) |  EXTRA_DIST = $(man_MANS) | ||||||
| diff -up dhcp-4.3.0a1/server/Makefile.am.sharedlib dhcp-4.3.0a1/server/Makefile.am
 | diff -up dhcp-4.3.1b1/server/Makefile.am.uCWMBl dhcp-4.3.1b1/server/Makefile.am
 | ||||||
| --- dhcp-4.3.0a1/server/Makefile.am.sharedlib	2013-12-20 14:23:14.305534822 +0100
 | --- dhcp-4.3.1b1/server/Makefile.am.uCWMBl	2014-07-10 17:36:30.486250948 +0200
 | ||||||
| +++ dhcp-4.3.0a1/server/Makefile.am	2013-12-20 14:23:14.314534697 +0100
 | +++ dhcp-4.3.1b1/server/Makefile.am	2014-07-10 17:38:10.780828554 +0200
 | ||||||
| @@ -13,7 +13,7 @@ dhcpd_SOURCES = dhcpd.c dhcp.c bootp.c c
 | @@ -13,7 +13,7 @@ dhcpd_SOURCES = dhcpd.c dhcp.c bootp.c c
 | ||||||
|  		dhcpv6.c mdb6.c ldap.c ldap_casa.c |  		dhcpv6.c mdb6.c ldap.c ldap_casa.c | ||||||
|   |   | ||||||
| @ -108,9 +115,9 @@ diff -up dhcp-4.3.0a1/server/Makefile.am.sharedlib dhcp-4.3.0a1/server/Makefile. | |||||||
|  	      $(BIND9_LIBDIR) -lirs-export -ldns-export -lisccfg-export -lisc-export |  	      $(BIND9_LIBDIR) -lirs-export -ldns-export -lisccfg-export -lisc-export | ||||||
|  man_MANS = dhcpd.8 dhcpd.conf.5 dhcpd.leases.5 |  man_MANS = dhcpd.8 dhcpd.conf.5 dhcpd.leases.5 | ||||||
|  EXTRA_DIST = $(man_MANS) |  EXTRA_DIST = $(man_MANS) | ||||||
| diff -up dhcp-4.3.0a1/server/tests/Makefile.am.sharedlib dhcp-4.3.0a1/server/tests/Makefile.am
 | diff -up dhcp-4.3.1b1/server/tests/Makefile.am.uCWMBl dhcp-4.3.1b1/server/tests/Makefile.am
 | ||||||
| --- dhcp-4.3.0a1/server/tests/Makefile.am.sharedlib	2013-12-20 14:23:14.305534822 +0100
 | --- dhcp-4.3.1b1/server/tests/Makefile.am.uCWMBl	2014-07-10 17:36:30.486250948 +0200
 | ||||||
| +++ dhcp-4.3.0a1/server/tests/Makefile.am	2013-12-20 14:23:14.314534697 +0100
 | +++ dhcp-4.3.1b1/server/tests/Makefile.am	2014-07-10 17:38:10.780828554 +0200
 | ||||||
| @@ -17,8 +17,8 @@ DHCPSRC = ../dhcp.c ../bootp.c ../confpa
 | @@ -17,8 +17,8 @@ DHCPSRC = ../dhcp.c ../bootp.c ../confpa
 | ||||||
|            ../ddns.c ../dhcpleasequery.c ../dhcpv6.c ../mdb6.c        \ |            ../ddns.c ../dhcpleasequery.c ../dhcpv6.c ../mdb6.c        \ | ||||||
|            ../ldap.c ../ldap_casa.c ../dhcpd.c |            ../ldap.c ../ldap_casa.c ../dhcpd.c | ||||||
|  | |||||||
| @ -1,19 +1,7 @@ | |||||||
| diff -up dhcp-4.3.0a1/Makefile.am.systemtap dhcp-4.3.0a1/Makefile.am
 | diff -up dhcp-4.3.1b1/configure.ac.systemtap dhcp-4.3.1b1/configure.ac
 | ||||||
| --- dhcp-4.3.0a1/Makefile.am.systemtap	2013-12-20 13:30:26.149645305 +0100
 | --- dhcp-4.3.1b1/configure.ac.systemtap	2014-07-10 18:31:05.966880404 +0200
 | ||||||
| +++ dhcp-4.3.0a1/Makefile.am	2013-12-20 13:30:26.307643109 +0100
 | +++ dhcp-4.3.1b1/configure.ac	2014-07-10 18:31:06.027879541 +0200
 | ||||||
| @@ -33,5 +33,8 @@ endif
 | @@ -534,6 +534,35 @@ else
 | ||||||
|   |  | ||||||
|  SUBDIRS += includes tests common omapip client dhcpctl relay server |  | ||||||
|   |  | ||||||
| +SUBDIRS += tapset
 |  | ||||||
| +#DIST_SUBDIRS = $(SUBDIRS)
 |  | ||||||
| +
 |  | ||||||
|  nobase_include_HEADERS = dhcpctl/dhcpctl.h |  | ||||||
|   |  | ||||||
| diff -up dhcp-4.3.0a1/configure.ac.systemtap dhcp-4.3.0a1/configure.ac
 |  | ||||||
| --- dhcp-4.3.0a1/configure.ac.systemtap	2013-12-20 13:30:26.229644193 +0100
 |  | ||||||
| +++ dhcp-4.3.0a1/configure.ac	2013-12-20 13:31:39.195630065 +0100
 |  | ||||||
| @@ -524,6 +524,35 @@ else
 |  | ||||||
|      AC_MSG_RESULT(no) |      AC_MSG_RESULT(no) | ||||||
|  fi |  fi | ||||||
|   |   | ||||||
| @ -49,7 +37,7 @@ diff -up dhcp-4.3.0a1/configure.ac.systemtap dhcp-4.3.0a1/configure.ac | |||||||
|  # Solaris needs some libraries for functions |  # Solaris needs some libraries for functions | ||||||
|  AC_SEARCH_LIBS(socket, [socket]) |  AC_SEARCH_LIBS(socket, [socket]) | ||||||
|  AC_SEARCH_LIBS(inet_ntoa, [nsl]) |  AC_SEARCH_LIBS(inet_ntoa, [nsl]) | ||||||
| @@ -675,6 +704,7 @@ AC_CONFIG_FILES([
 | @@ -686,6 +715,7 @@ AC_CONFIG_FILES([
 | ||||||
|    tests/Makefile |    tests/Makefile | ||||||
|    server/tests/Makefile |    server/tests/Makefile | ||||||
|    doc/devel/doxyfile |    doc/devel/doxyfile | ||||||
| @ -57,9 +45,437 @@ diff -up dhcp-4.3.0a1/configure.ac.systemtap dhcp-4.3.0a1/configure.ac | |||||||
|  ]) |  ]) | ||||||
|  AC_OUTPUT |  AC_OUTPUT | ||||||
|   |   | ||||||
| diff -up dhcp-4.3.0a1/server/Makefile.am.systemtap dhcp-4.3.0a1/server/Makefile.am
 | diff -up dhcp-4.3.1b1/Makefile.am.systemtap dhcp-4.3.1b1/Makefile.am
 | ||||||
| --- dhcp-4.3.0a1/server/Makefile.am.systemtap	2013-12-20 13:30:26.156645207 +0100
 | --- dhcp-4.3.1b1/Makefile.am.systemtap	2014-07-10 18:31:05.891881465 +0200
 | ||||||
| +++ dhcp-4.3.0a1/server/Makefile.am	2013-12-20 13:34:16.057447630 +0100
 | +++ dhcp-4.3.1b1/Makefile.am	2014-07-10 18:31:06.027879541 +0200
 | ||||||
|  | @@ -33,5 +33,8 @@ endif
 | ||||||
|  |   | ||||||
|  |  SUBDIRS += includes tests common omapip client dhcpctl relay server | ||||||
|  |   | ||||||
|  | +SUBDIRS += tapset
 | ||||||
|  | +#DIST_SUBDIRS = $(SUBDIRS)
 | ||||||
|  | +
 | ||||||
|  |  nobase_include_HEADERS = dhcpctl/dhcpctl.h | ||||||
|  |   | ||||||
|  | diff -up dhcp-4.3.1b1/server/dhcp.c.systemtap dhcp-4.3.1b1/server/dhcp.c
 | ||||||
|  | --- dhcp-4.3.1b1/server/dhcp.c.systemtap	2014-07-10 18:31:06.016879697 +0200
 | ||||||
|  | +++ dhcp-4.3.1b1/server/dhcp.c	2014-07-10 18:36:07.392617942 +0200
 | ||||||
|  | @@ -30,7 +30,7 @@
 | ||||||
|  |  #include <errno.h> | ||||||
|  |  #include <limits.h> | ||||||
|  |  #include <sys/time.h> | ||||||
|  | -
 | ||||||
|  | +#include "trace.h"
 | ||||||
|  |  static void commit_leases_ackout(void *foo); | ||||||
|  |  static void maybe_return_agent_options(struct packet *packet, | ||||||
|  |  				       struct option_state *options); | ||||||
|  | @@ -303,6 +303,8 @@ void dhcpdiscover (packet, ms_nulltp)
 | ||||||
|  |  	dhcp_failover_state_t *peer; | ||||||
|  |  #endif | ||||||
|  |   | ||||||
|  | +	TRACE(DHCPD_DISCOVER_START());
 | ||||||
|  | +
 | ||||||
|  |  	find_lease (&lease, packet, packet -> shared_network, | ||||||
|  |  		    0, &peer_has_leases, (struct lease *)0, MDL); | ||||||
|  |   | ||||||
|  | @@ -425,6 +427,8 @@ void dhcpdiscover (packet, ms_nulltp)
 | ||||||
|  |        out: | ||||||
|  |  	if (lease) | ||||||
|  |  		lease_dereference (&lease, MDL); | ||||||
|  | +
 | ||||||
|  | +	TRACE(DHCPD_DISCOVER_DONE());
 | ||||||
|  |  } | ||||||
|  |   | ||||||
|  |  void dhcprequest (packet, ms_nulltp, ip_lease) | ||||||
|  | @@ -447,6 +451,8 @@ void dhcprequest (packet, ms_nulltp, ip_
 | ||||||
|  |  #endif | ||||||
|  |  	int have_requested_addr = 0; | ||||||
|  |   | ||||||
|  | +	TRACE(DHCPD_REQUEST_START());
 | ||||||
|  | +
 | ||||||
|  |  	oc = lookup_option (&dhcp_universe, packet -> options, | ||||||
|  |  			    DHO_DHCP_REQUESTED_ADDRESS); | ||||||
|  |  	memset (&data, 0, sizeof data); | ||||||
|  | @@ -724,6 +730,9 @@ void dhcprequest (packet, ms_nulltp, ip_
 | ||||||
|  |  		log_info ("%s: unknown lease %s.", msgbuf, piaddr (cip)); | ||||||
|  |   | ||||||
|  |        out: | ||||||
|  | +
 | ||||||
|  | +	TRACE(DHCPD_REQUEST_DONE());
 | ||||||
|  | +
 | ||||||
|  |  	if (subnet) | ||||||
|  |  		subnet_dereference (&subnet, MDL); | ||||||
|  |  	if (lease) | ||||||
|  | @@ -742,6 +751,7 @@ void dhcprelease (packet, ms_nulltp)
 | ||||||
|  |  	const char *s; | ||||||
|  |  	char msgbuf [1024], cstr[16]; /* XXX */ | ||||||
|  |   | ||||||
|  | +	TRACE(DHCPD_RELEASE_START());
 | ||||||
|  |   | ||||||
|  |  	/* DHCPRELEASE must not specify address in requested-address | ||||||
|  |  	   option, but old protocol specs weren't explicit about this, | ||||||
|  | @@ -862,6 +872,8 @@ void dhcprelease (packet, ms_nulltp)
 | ||||||
|  |  #endif | ||||||
|  |  	if (lease) | ||||||
|  |  		lease_dereference (&lease, MDL); | ||||||
|  | +
 | ||||||
|  | +	TRACE(DHCPD_RELEASE_DONE());
 | ||||||
|  |  } | ||||||
|  |   | ||||||
|  |  void dhcpdecline (packet, ms_nulltp) | ||||||
|  | @@ -879,6 +891,8 @@ void dhcpdecline (packet, ms_nulltp)
 | ||||||
|  |  	struct option_cache *oc; | ||||||
|  |  	struct data_string data; | ||||||
|  |   | ||||||
|  | +	TRACE(DHCPD_DECLINE_START());
 | ||||||
|  | +
 | ||||||
|  |  	/* DHCPDECLINE must specify address. */ | ||||||
|  |  	if (!(oc = lookup_option (&dhcp_universe, packet -> options, | ||||||
|  |  				  DHO_DHCP_REQUESTED_ADDRESS))) | ||||||
|  | @@ -985,6 +999,8 @@ void dhcpdecline (packet, ms_nulltp)
 | ||||||
|  |  		option_state_dereference (&options, MDL); | ||||||
|  |  	if (lease) | ||||||
|  |  		lease_dereference (&lease, MDL); | ||||||
|  | +
 | ||||||
|  | +	TRACE(DHCPD_DECLINE_DONE());
 | ||||||
|  |  } | ||||||
|  |   | ||||||
|  |  void dhcpinform (packet, ms_nulltp) | ||||||
|  | @@ -1012,6 +1028,8 @@ void dhcpinform (packet, ms_nulltp)
 | ||||||
|  |  	int h_w_fixed_addr = 0; | ||||||
|  |  #endif | ||||||
|  |   | ||||||
|  | +	TRACE(DHCPD_INFORM_START());
 | ||||||
|  | +
 | ||||||
|  |  	/* The client should set ciaddr to its IP address, but apparently | ||||||
|  |  	   it's common for clients not to do this, so we'll use their IP | ||||||
|  |  	   source address if they didn't set ciaddr. */ | ||||||
|  | @@ -1584,6 +1602,8 @@ void dhcpinform (packet, ms_nulltp)
 | ||||||
|  |   | ||||||
|  |  	if (subnet) | ||||||
|  |  		subnet_dereference (&subnet, MDL); | ||||||
|  | +
 | ||||||
|  | +	TRACE(DHCPD_INFORM_DONE());
 | ||||||
|  |  } | ||||||
|  |   | ||||||
|  |  void nak_lease (packet, cip) | ||||||
|  | @@ -1600,6 +1620,8 @@ void nak_lease (packet, cip)
 | ||||||
|  |  	struct option_state *options = (struct option_state *)0; | ||||||
|  |  	struct option_cache *oc = (struct option_cache *)0; | ||||||
|  |   | ||||||
|  | +	TRACE(DHCPD_NAK_LEASE_START());
 | ||||||
|  | +
 | ||||||
|  |  	option_state_allocate (&options, MDL); | ||||||
|  |  	memset (&outgoing, 0, sizeof outgoing); | ||||||
|  |  	memset (&raw, 0, sizeof raw); | ||||||
|  | @@ -1764,6 +1786,7 @@ void nak_lease (packet, cip)
 | ||||||
|  |                             packet->interface->name); | ||||||
|  |          } | ||||||
|  |   | ||||||
|  | +	TRACE(DHCPD_NAK_LEASE_DONE());
 | ||||||
|  |  } | ||||||
|  |   | ||||||
|  |  void check_pool_threshold (packet, lease, state) | ||||||
|  | @@ -1899,6 +1922,8 @@ void ack_lease (packet, lease, offer, wh
 | ||||||
|  |  	if (lease -> state) | ||||||
|  |  		return; | ||||||
|  |   | ||||||
|  | +	TRACE(DHCPD_ACK_LEASE_START());
 | ||||||
|  | +
 | ||||||
|  |  	/* Save original cltt for comparison later. */ | ||||||
|  |  	lease_cltt = lease->cltt; | ||||||
|  |   | ||||||
|  | @@ -3340,6 +3365,8 @@ void ack_lease (packet, lease, offer, wh
 | ||||||
|  |  #endif | ||||||
|  |  			dhcp_reply(lease); | ||||||
|  |  	} | ||||||
|  | +
 | ||||||
|  | +	TRACE(DHCPD_ACK_LEASE_DONE());
 | ||||||
|  |  } | ||||||
|  |   | ||||||
|  |  /* | ||||||
|  | @@ -3492,6 +3519,8 @@ void dhcp_reply (lease)
 | ||||||
|  |  	if (!state) | ||||||
|  |  		log_fatal ("dhcp_reply was supplied lease with no state!"); | ||||||
|  |   | ||||||
|  | +	TRACE(DHCPD_REPLY_START());
 | ||||||
|  | +
 | ||||||
|  |  	/* Compose a response for the client... */ | ||||||
|  |  	memset (&raw, 0, sizeof raw); | ||||||
|  |  	memset (&d1, 0, sizeof d1); | ||||||
|  | @@ -3713,6 +3742,8 @@ void dhcp_reply (lease)
 | ||||||
|  |   | ||||||
|  |  	free_lease_state (state, MDL); | ||||||
|  |  	lease -> state = (struct lease_state *)0; | ||||||
|  | +
 | ||||||
|  | +	TRACE(DHCPD_REPLY_DONE());
 | ||||||
|  |  } | ||||||
|  |   | ||||||
|  |  int find_lease (struct lease **lp, | ||||||
|  | @@ -3735,6 +3766,8 @@ int find_lease (struct lease **lp,
 | ||||||
|  |  	struct data_string client_identifier; | ||||||
|  |  	struct hardware h; | ||||||
|  |   | ||||||
|  | +	TRACE(DHCPD_FIND_LEASE_START());
 | ||||||
|  | +
 | ||||||
|  |  #if defined(FAILOVER_PROTOCOL) | ||||||
|  |  	/* Quick check to see if the peer has leases. */ | ||||||
|  |  	if (peer_has_leases) { | ||||||
|  | @@ -4457,6 +4490,9 @@ int find_lease (struct lease **lp,
 | ||||||
|  |  #if defined (DEBUG_FIND_LEASE) | ||||||
|  |  	log_info ("Not returning a lease."); | ||||||
|  |  #endif | ||||||
|  | +
 | ||||||
|  | +	TRACE(DHCPD_FIND_LEASE_DONE());
 | ||||||
|  | +
 | ||||||
|  |  	return 0; | ||||||
|  |  } | ||||||
|  |   | ||||||
|  | diff -up dhcp-4.3.1b1/server/dhcpd.c.systemtap dhcp-4.3.1b1/server/dhcpd.c
 | ||||||
|  | --- dhcp-4.3.1b1/server/dhcpd.c.systemtap	2014-07-10 18:31:06.006879838 +0200
 | ||||||
|  | +++ dhcp-4.3.1b1/server/dhcpd.c	2014-07-10 18:31:06.030879499 +0200
 | ||||||
|  | @@ -52,6 +52,8 @@ static const char url [] =
 | ||||||
|  |  #  undef group | ||||||
|  |  #endif /* PARANOIA */ | ||||||
|  |   | ||||||
|  | +#include "trace.h"
 | ||||||
|  | +
 | ||||||
|  |  #ifndef UNIT_TEST | ||||||
|  |  static void usage(void); | ||||||
|  |  #endif | ||||||
|  | @@ -801,6 +803,8 @@ main(int argc, char **argv) {
 | ||||||
|  |  	/* Log that we are about to start working */ | ||||||
|  |  	log_info("Server starting service."); | ||||||
|  |   | ||||||
|  | +	TRACE(DHCPD_MAIN());
 | ||||||
|  | +
 | ||||||
|  |  	/* | ||||||
|  |  	 * Receive packets and dispatch them... | ||||||
|  |  	 * dispatch() will never return. | ||||||
|  | diff -up dhcp-4.3.1b1/server/dhcpv6.c.systemtap dhcp-4.3.1b1/server/dhcpv6.c
 | ||||||
|  | --- dhcp-4.3.1b1/server/dhcpv6.c.systemtap	2014-07-10 18:31:05.998879951 +0200
 | ||||||
|  | +++ dhcp-4.3.1b1/server/dhcpv6.c	2014-07-10 18:31:06.032879471 +0200
 | ||||||
|  | @@ -17,6 +17,7 @@
 | ||||||
|  |  /*! \file server/dhcpv6.c */ | ||||||
|  |   | ||||||
|  |  #include "dhcpd.h" | ||||||
|  | +#include "trace.h"
 | ||||||
|  |   | ||||||
|  |  #ifdef DHCPv6 | ||||||
|  |   | ||||||
|  | @@ -4829,6 +4830,8 @@ static void
 | ||||||
|  |  dhcpv6_solicit(struct data_string *reply_ret, struct packet *packet) { | ||||||
|  |  	struct data_string client_id; | ||||||
|  |   | ||||||
|  | +	TRACE(DHCPD_SIX_SOLICIT_START());
 | ||||||
|  | +
 | ||||||
|  |  	/*  | ||||||
|  |  	 * Validate our input. | ||||||
|  |  	 */ | ||||||
|  | @@ -4842,6 +4845,8 @@ dhcpv6_solicit(struct data_string *reply
 | ||||||
|  |  	 * Clean up. | ||||||
|  |  	 */ | ||||||
|  |  	data_string_forget(&client_id, MDL); | ||||||
|  | +
 | ||||||
|  | +	TRACE(DHCPD_SIX_SOLICIT_DONE());
 | ||||||
|  |  } | ||||||
|  |   | ||||||
|  |  /* | ||||||
|  | @@ -4855,6 +4860,8 @@ dhcpv6_request(struct data_string *reply
 | ||||||
|  |  	struct data_string client_id; | ||||||
|  |  	struct data_string server_id; | ||||||
|  |   | ||||||
|  | +	TRACE(DHCPD_SIX_REQUEST_START());
 | ||||||
|  | +
 | ||||||
|  |  	/* | ||||||
|  |  	 * Validate our input. | ||||||
|  |  	 */ | ||||||
|  | @@ -4872,6 +4879,8 @@ dhcpv6_request(struct data_string *reply
 | ||||||
|  |  	 */ | ||||||
|  |  	data_string_forget(&client_id, MDL); | ||||||
|  |  	data_string_forget(&server_id, MDL); | ||||||
|  | +
 | ||||||
|  | +	TRACE(DHCPD_SIX_REQUEST_DONE());
 | ||||||
|  |  } | ||||||
|  |   | ||||||
|  |  /* Find a DHCPv6 packet's shared network from hints in the packet. | ||||||
|  | @@ -4984,6 +4993,8 @@ dhcpv6_confirm(struct data_string *reply
 | ||||||
|  |  	struct dhcpv6_packet *reply = (struct dhcpv6_packet *)reply_data; | ||||||
|  |  	int reply_ofs = (int)(offsetof(struct dhcpv6_packet, options)); | ||||||
|  |   | ||||||
|  | +	TRACE(DHCPD_SIX_CONFIRM_START());
 | ||||||
|  | +
 | ||||||
|  |  	/*  | ||||||
|  |  	 * Basic client message validation. | ||||||
|  |  	 */ | ||||||
|  | @@ -5170,6 +5181,8 @@ exit:
 | ||||||
|  |  		option_state_dereference(&cli_enc_opt_state, MDL); | ||||||
|  |  	if (opt_state != NULL) | ||||||
|  |  		option_state_dereference(&opt_state, MDL); | ||||||
|  | +
 | ||||||
|  | +	TRACE(DHCPD_SIX_CONFIRM_DONE());
 | ||||||
|  |  } | ||||||
|  |   | ||||||
|  |  /* | ||||||
|  | @@ -5184,6 +5197,8 @@ dhcpv6_renew(struct data_string *reply,
 | ||||||
|  |  	struct data_string client_id; | ||||||
|  |  	struct data_string server_id; | ||||||
|  |   | ||||||
|  | +	TRACE(DHCPD_SIX_RENEW_START());
 | ||||||
|  | +
 | ||||||
|  |  	/*  | ||||||
|  |  	 * Validate the request. | ||||||
|  |  	 */ | ||||||
|  | @@ -5201,6 +5216,8 @@ dhcpv6_renew(struct data_string *reply,
 | ||||||
|  |  	 */ | ||||||
|  |  	data_string_forget(&server_id, MDL); | ||||||
|  |  	data_string_forget(&client_id, MDL); | ||||||
|  | +
 | ||||||
|  | +	TRACE(DHCPD_SIX_RENEW_DONE());
 | ||||||
|  |  } | ||||||
|  |   | ||||||
|  |  /* | ||||||
|  | @@ -5214,6 +5231,8 @@ static void
 | ||||||
|  |  dhcpv6_rebind(struct data_string *reply, struct packet *packet) { | ||||||
|  |  	struct data_string client_id; | ||||||
|  |   | ||||||
|  | +	TRACE(DHCPD_SIX_REBIND_START());
 | ||||||
|  | +
 | ||||||
|  |  	if (!valid_client_msg(packet, &client_id)) { | ||||||
|  |  		return; | ||||||
|  |  	} | ||||||
|  | @@ -5221,6 +5240,8 @@ dhcpv6_rebind(struct data_string *reply,
 | ||||||
|  |  	lease_to_client(reply, packet, &client_id, NULL); | ||||||
|  |   | ||||||
|  |  	data_string_forget(&client_id, MDL); | ||||||
|  | +
 | ||||||
|  | +	TRACE(DHCPD_SIX_REBIND_DONE());
 | ||||||
|  |  } | ||||||
|  |   | ||||||
|  |  static void | ||||||
|  | @@ -5665,6 +5686,8 @@ dhcpv6_decline(struct data_string *reply
 | ||||||
|  |  	struct data_string client_id; | ||||||
|  |  	struct data_string server_id; | ||||||
|  |   | ||||||
|  | +	TRACE(DHCPD_SIX_DECLINE_START());
 | ||||||
|  | +
 | ||||||
|  |  	/*  | ||||||
|  |  	 * Validate our input. | ||||||
|  |  	 */ | ||||||
|  | @@ -5685,6 +5708,8 @@ dhcpv6_decline(struct data_string *reply
 | ||||||
|  |   | ||||||
|  |  	data_string_forget(&server_id, MDL); | ||||||
|  |  	data_string_forget(&client_id, MDL); | ||||||
|  | +
 | ||||||
|  | +	TRACE(DHCPD_SIX_DECLINE_DONE());
 | ||||||
|  |  } | ||||||
|  |   | ||||||
|  |  static void | ||||||
|  | @@ -6133,6 +6158,8 @@ dhcpv6_release(struct data_string *reply
 | ||||||
|  |  	struct data_string client_id; | ||||||
|  |  	struct data_string server_id; | ||||||
|  |   | ||||||
|  | +	TRACE(DHCPD_SIX_RELEASE_START());
 | ||||||
|  | +
 | ||||||
|  |  	/*  | ||||||
|  |  	 * Validate our input. | ||||||
|  |  	 */ | ||||||
|  | @@ -6154,6 +6181,8 @@ dhcpv6_release(struct data_string *reply
 | ||||||
|  |   | ||||||
|  |  	data_string_forget(&server_id, MDL); | ||||||
|  |  	data_string_forget(&client_id, MDL); | ||||||
|  | +
 | ||||||
|  | +	TRACE(DHCPD_SIX_RELEASE_DONE());
 | ||||||
|  |  } | ||||||
|  |   | ||||||
|  |  /* | ||||||
|  | @@ -6166,6 +6195,8 @@ dhcpv6_information_request(struct data_s
 | ||||||
|  |  	struct data_string client_id; | ||||||
|  |  	struct data_string server_id; | ||||||
|  |   | ||||||
|  | +	TRACE(DHCPD_SIX_INFORMATION_REQUEST_START());
 | ||||||
|  | +
 | ||||||
|  |  	/* | ||||||
|  |  	 * Validate our input. | ||||||
|  |  	 */ | ||||||
|  | @@ -6197,6 +6228,8 @@ dhcpv6_information_request(struct data_s
 | ||||||
|  |  		data_string_forget(&client_id, MDL); | ||||||
|  |  	} | ||||||
|  |  	data_string_forget(&server_id, MDL); | ||||||
|  | +
 | ||||||
|  | +	TRACE(DHCPD_SIX_INFORMATION_REQUEST_DONE());
 | ||||||
|  |  } | ||||||
|  |   | ||||||
|  |  /*  | ||||||
|  | @@ -6225,6 +6258,8 @@ dhcpv6_relay_forw(struct data_string *re
 | ||||||
|  |  	struct dhcpv6_relay_packet *reply; | ||||||
|  |  	int reply_ofs; | ||||||
|  |   | ||||||
|  | +	TRACE(DHCPD_SIX_RELAY_FORW_START());
 | ||||||
|  | +
 | ||||||
|  |  	/*  | ||||||
|  |  	 * Initialize variables for early exit. | ||||||
|  |  	 */ | ||||||
|  | @@ -6484,6 +6519,8 @@ exit:
 | ||||||
|  |  	if (enc_packet != NULL) { | ||||||
|  |  		packet_dereference(&enc_packet, MDL); | ||||||
|  |  	} | ||||||
|  | +
 | ||||||
|  | +	TRACE(DHCPD_SIX_RELAY_FORW_DONE());
 | ||||||
|  |  } | ||||||
|  |   | ||||||
|  |  static void | ||||||
|  | diff -up dhcp-4.3.1b1/server/failover.c.systemtap dhcp-4.3.1b1/server/failover.c
 | ||||||
|  | --- dhcp-4.3.1b1/server/failover.c.systemtap	2014-07-02 19:58:40.000000000 +0200
 | ||||||
|  | +++ dhcp-4.3.1b1/server/failover.c	2014-07-10 18:31:06.034879442 +0200
 | ||||||
|  | @@ -30,6 +30,8 @@
 | ||||||
|  |  #include "dhcpd.h" | ||||||
|  |  #include <omapip/omapip_p.h> | ||||||
|  |   | ||||||
|  | +#include "trace.h"
 | ||||||
|  | +
 | ||||||
|  |  #if defined (FAILOVER_PROTOCOL) | ||||||
|  |  dhcp_failover_state_t *failover_states; | ||||||
|  |  static isc_result_t do_a_failover_option (omapi_object_t *, | ||||||
|  | @@ -1704,6 +1706,8 @@ isc_result_t dhcp_failover_set_state (dh
 | ||||||
|  |      struct lease *l; | ||||||
|  |      struct timeval tv; | ||||||
|  |   | ||||||
|  | +    TRACE(DHCPD_FAILOVER_SET_STATE_START(state->me.state, new_state));
 | ||||||
|  | +
 | ||||||
|  |      /* If we're in certain states where we're sending updates, and the peer | ||||||
|  |       * state changes, we need to re-schedule any pending updates just to | ||||||
|  |       * be on the safe side.  This results in retransmission. | ||||||
|  | @@ -1935,6 +1939,8 @@ isc_result_t dhcp_failover_set_state (dh
 | ||||||
|  |  	    break; | ||||||
|  |      } | ||||||
|  |   | ||||||
|  | +    TRACE(DHCPD_FAILOVER_SET_STATE_DONE());
 | ||||||
|  | +
 | ||||||
|  |      return ISC_R_SUCCESS; | ||||||
|  |  } | ||||||
|  |   | ||||||
|  | @@ -2423,6 +2429,8 @@ dhcp_failover_pool_dobalance(dhcp_failov
 | ||||||
|  |  	if (state -> me.state != normal) | ||||||
|  |  		return 0; | ||||||
|  |   | ||||||
|  | +	TRACE(DHCPD_FAILOVER_POOL_DOBALANCE_START());
 | ||||||
|  | +
 | ||||||
|  |  	state->last_balance = cur_time; | ||||||
|  |   | ||||||
|  |  	for (s = shared_networks ; s ; s = s->next) { | ||||||
|  | @@ -2583,6 +2591,8 @@ dhcp_failover_pool_dobalance(dhcp_failov
 | ||||||
|  |  	if (leases_queued) | ||||||
|  |  		commit_leases(); | ||||||
|  |   | ||||||
|  | +	TRACE(DHCPD_FAILOVER_POOL_DOBALANCE_DONE());
 | ||||||
|  | +
 | ||||||
|  |  	return leases_queued; | ||||||
|  |  } | ||||||
|  |   | ||||||
|  | diff -up dhcp-4.3.1b1/server/Makefile.am.systemtap dhcp-4.3.1b1/server/Makefile.am
 | ||||||
|  | --- dhcp-4.3.1b1/server/Makefile.am.systemtap	2014-07-10 18:31:05.895881408 +0200
 | ||||||
|  | +++ dhcp-4.3.1b1/server/Makefile.am	2014-07-10 18:31:06.028879527 +0200
 | ||||||
| @@ -10,7 +10,7 @@ dist_sysconf_DATA = dhcpd.conf.example
 | @@ -10,7 +10,7 @@ dist_sysconf_DATA = dhcpd.conf.example
 | ||||||
|  sbin_PROGRAMS = dhcpd |  sbin_PROGRAMS = dhcpd | ||||||
|  dhcpd_SOURCES = dhcpd.c dhcp.c bootp.c confpars.c db.c class.c failover.c \ |  dhcpd_SOURCES = dhcpd.c dhcp.c bootp.c confpars.c db.c class.c failover.c \ | ||||||
| @ -83,425 +499,9 @@ diff -up dhcp-4.3.0a1/server/Makefile.am.systemtap dhcp-4.3.0a1/server/Makefile. | |||||||
| +
 | +
 | ||||||
| +dhcpd_LDADD += probes.o
 | +dhcpd_LDADD += probes.o
 | ||||||
| +endif
 | +endif
 | ||||||
| diff -up dhcp-4.3.0a1/server/dhcp.c.systemtap dhcp-4.3.0a1/server/dhcp.c
 | diff -up dhcp-4.3.1b1/server/probes.d.systemtap dhcp-4.3.1b1/server/probes.d
 | ||||||
| --- dhcp-4.3.0a1/server/dhcp.c.systemtap	2013-12-20 13:30:26.182644846 +0100
 | --- dhcp-4.3.1b1/server/probes.d.systemtap	2014-07-10 18:31:06.034879442 +0200
 | ||||||
| +++ dhcp-4.3.0a1/server/dhcp.c	2013-12-20 13:32:22.909022163 +0100
 | +++ dhcp-4.3.1b1/server/probes.d	2014-07-10 18:31:06.034879442 +0200
 | ||||||
| @@ -36,7 +36,7 @@
 |  | ||||||
|  #include <errno.h> |  | ||||||
|  #include <limits.h> |  | ||||||
|  #include <sys/time.h> |  | ||||||
| -
 |  | ||||||
| +#include "trace.h"
 |  | ||||||
|  static void commit_leases_ackout(void *foo); |  | ||||||
|  static void maybe_return_agent_options(struct packet *packet, |  | ||||||
|  				       struct option_state *options); |  | ||||||
| @@ -275,6 +275,8 @@ void dhcpdiscover (packet, ms_nulltp)
 |  | ||||||
|  	dhcp_failover_state_t *peer; |  | ||||||
|  #endif |  | ||||||
|   |  | ||||||
| +	TRACE(DHCPD_DISCOVER_START());
 |  | ||||||
| +
 |  | ||||||
|  	find_lease (&lease, packet, packet -> shared_network, |  | ||||||
|  		    0, &peer_has_leases, (struct lease *)0, MDL); |  | ||||||
|   |  | ||||||
| @@ -399,6 +401,8 @@ void dhcpdiscover (packet, ms_nulltp)
 |  | ||||||
|        out: |  | ||||||
|  	if (lease) |  | ||||||
|  		lease_dereference (&lease, MDL); |  | ||||||
| +
 |  | ||||||
| +	TRACE(DHCPD_DISCOVER_DONE());
 |  | ||||||
|  } |  | ||||||
|   |  | ||||||
|  void dhcprequest (packet, ms_nulltp, ip_lease) |  | ||||||
| @@ -421,6 +425,8 @@ void dhcprequest (packet, ms_nulltp, ip_
 |  | ||||||
|  #endif |  | ||||||
|  	int have_requested_addr = 0; |  | ||||||
|   |  | ||||||
| +	TRACE(DHCPD_REQUEST_START());
 |  | ||||||
| +
 |  | ||||||
|  	oc = lookup_option (&dhcp_universe, packet -> options, |  | ||||||
|  			    DHO_DHCP_REQUESTED_ADDRESS); |  | ||||||
|  	memset (&data, 0, sizeof data); |  | ||||||
| @@ -700,6 +706,9 @@ void dhcprequest (packet, ms_nulltp, ip_
 |  | ||||||
|  		log_info ("%s: unknown lease %s.", msgbuf, piaddr (cip)); |  | ||||||
|   |  | ||||||
|        out: |  | ||||||
| +
 |  | ||||||
| +	TRACE(DHCPD_REQUEST_DONE());
 |  | ||||||
| +
 |  | ||||||
|  	if (subnet) |  | ||||||
|  		subnet_dereference (&subnet, MDL); |  | ||||||
|  	if (lease) |  | ||||||
| @@ -718,6 +727,7 @@ void dhcprelease (packet, ms_nulltp)
 |  | ||||||
|  	const char *s; |  | ||||||
|  	char msgbuf [1024], cstr[16]; /* XXX */ |  | ||||||
|   |  | ||||||
| +	TRACE(DHCPD_RELEASE_START());
 |  | ||||||
|   |  | ||||||
|  	/* DHCPRELEASE must not specify address in requested-address |  | ||||||
|  	   option, but old protocol specs weren't explicit about this, |  | ||||||
| @@ -842,6 +852,8 @@ void dhcprelease (packet, ms_nulltp)
 |  | ||||||
|  #endif |  | ||||||
|  	if (lease) |  | ||||||
|  		lease_dereference (&lease, MDL); |  | ||||||
| +
 |  | ||||||
| +	TRACE(DHCPD_RELEASE_DONE());
 |  | ||||||
|  } |  | ||||||
|   |  | ||||||
|  void dhcpdecline (packet, ms_nulltp) |  | ||||||
| @@ -859,6 +871,8 @@ void dhcpdecline (packet, ms_nulltp)
 |  | ||||||
|  	struct option_cache *oc; |  | ||||||
|  	struct data_string data; |  | ||||||
|   |  | ||||||
| +	TRACE(DHCPD_DECLINE_START());
 |  | ||||||
| +
 |  | ||||||
|  	/* DHCPDECLINE must specify address. */ |  | ||||||
|  	if (!(oc = lookup_option (&dhcp_universe, packet -> options, |  | ||||||
|  				  DHO_DHCP_REQUESTED_ADDRESS))) |  | ||||||
| @@ -967,6 +981,8 @@ void dhcpdecline (packet, ms_nulltp)
 |  | ||||||
|  		option_state_dereference (&options, MDL); |  | ||||||
|  	if (lease) |  | ||||||
|  		lease_dereference (&lease, MDL); |  | ||||||
| +
 |  | ||||||
| +	TRACE(DHCPD_DECLINE_DONE());
 |  | ||||||
|  } |  | ||||||
|   |  | ||||||
|  void dhcpinform (packet, ms_nulltp) |  | ||||||
| @@ -994,6 +1010,8 @@ void dhcpinform (packet, ms_nulltp)
 |  | ||||||
|  	int h_w_fixed_addr = 0; |  | ||||||
|  #endif |  | ||||||
|   |  | ||||||
| +	TRACE(DHCPD_INFORM_START());
 |  | ||||||
| +
 |  | ||||||
|  	/* The client should set ciaddr to its IP address, but apparently |  | ||||||
|  	   it's common for clients not to do this, so we'll use their IP |  | ||||||
|  	   source address if they didn't set ciaddr. */ |  | ||||||
| @@ -1567,6 +1585,8 @@ void dhcpinform (packet, ms_nulltp)
 |  | ||||||
|   |  | ||||||
|  	if (subnet) |  | ||||||
|  		subnet_dereference (&subnet, MDL); |  | ||||||
| +
 |  | ||||||
| +	TRACE(DHCPD_INFORM_DONE());
 |  | ||||||
|  } |  | ||||||
|   |  | ||||||
|  void nak_lease (packet, cip) |  | ||||||
| @@ -1583,6 +1603,8 @@ void nak_lease (packet, cip)
 |  | ||||||
|  	struct option_state *options = (struct option_state *)0; |  | ||||||
|  	struct option_cache *oc = (struct option_cache *)0; |  | ||||||
|   |  | ||||||
| +	TRACE(DHCPD_NAK_LEASE_START());
 |  | ||||||
| +
 |  | ||||||
|  	option_state_allocate (&options, MDL); |  | ||||||
|  	memset (&outgoing, 0, sizeof outgoing); |  | ||||||
|  	memset (&raw, 0, sizeof raw); |  | ||||||
| @@ -1749,6 +1771,7 @@ void nak_lease (packet, cip)
 |  | ||||||
|                             packet->interface->name); |  | ||||||
|          } |  | ||||||
|   |  | ||||||
| +	TRACE(DHCPD_NAK_LEASE_DONE());
 |  | ||||||
|  } |  | ||||||
|   |  | ||||||
|  void ack_lease (packet, lease, offer, when, msg, ms_nulltp, hp) |  | ||||||
| @@ -1792,6 +1815,8 @@ void ack_lease (packet, lease, offer, wh
 |  | ||||||
|  	if (lease -> state) |  | ||||||
|  		return; |  | ||||||
|   |  | ||||||
| +	TRACE(DHCPD_ACK_LEASE_START());
 |  | ||||||
| +
 |  | ||||||
|  	/* Save original cltt for comparison later. */ |  | ||||||
|  	lease_cltt = lease->cltt; |  | ||||||
|   |  | ||||||
| @@ -3225,6 +3250,8 @@ void ack_lease (packet, lease, offer, wh
 |  | ||||||
|  #endif |  | ||||||
|  			dhcp_reply(lease); |  | ||||||
|  	} |  | ||||||
| +
 |  | ||||||
| +	TRACE(DHCPD_ACK_LEASE_DONE());
 |  | ||||||
|  } |  | ||||||
|   |  | ||||||
|  /* |  | ||||||
| @@ -3377,6 +3404,8 @@ void dhcp_reply (lease)
 |  | ||||||
|  	if (!state) |  | ||||||
|  		log_fatal ("dhcp_reply was supplied lease with no state!"); |  | ||||||
|   |  | ||||||
| +	TRACE(DHCPD_REPLY_START());
 |  | ||||||
| +
 |  | ||||||
|  	/* Compose a response for the client... */ |  | ||||||
|  	memset (&raw, 0, sizeof raw); |  | ||||||
|  	memset (&d1, 0, sizeof d1); |  | ||||||
| @@ -3598,6 +3627,8 @@ void dhcp_reply (lease)
 |  | ||||||
|   |  | ||||||
|  	free_lease_state (state, MDL); |  | ||||||
|  	lease -> state = (struct lease_state *)0; |  | ||||||
| +
 |  | ||||||
| +	TRACE(DHCPD_REPLY_DONE());
 |  | ||||||
|  } |  | ||||||
|   |  | ||||||
|  int find_lease (struct lease **lp, |  | ||||||
| @@ -3620,6 +3651,8 @@ int find_lease (struct lease **lp,
 |  | ||||||
|  	struct data_string client_identifier; |  | ||||||
|  	struct hardware h; |  | ||||||
|   |  | ||||||
| +	TRACE(DHCPD_FIND_LEASE_START());
 |  | ||||||
| +
 |  | ||||||
|  #if defined(FAILOVER_PROTOCOL) |  | ||||||
|  	/* Quick check to see if the peer has leases. */ |  | ||||||
|  	if (peer_has_leases) { |  | ||||||
| @@ -4347,6 +4380,9 @@ int find_lease (struct lease **lp,
 |  | ||||||
|  #if defined (DEBUG_FIND_LEASE) |  | ||||||
|  	log_info ("Not returning a lease."); |  | ||||||
|  #endif |  | ||||||
| +
 |  | ||||||
| +	TRACE(DHCPD_FIND_LEASE_DONE());
 |  | ||||||
| +
 |  | ||||||
|  	return 0; |  | ||||||
|  } |  | ||||||
|   |  | ||||||
| diff -up dhcp-4.3.0a1/server/dhcpd.c.systemtap dhcp-4.3.0a1/server/dhcpd.c
 |  | ||||||
| --- dhcp-4.3.0a1/server/dhcpd.c.systemtap	2013-12-20 13:30:26.281643471 +0100
 |  | ||||||
| +++ dhcp-4.3.0a1/server/dhcpd.c	2013-12-20 13:33:26.013144200 +0100
 |  | ||||||
| @@ -58,6 +58,8 @@ static const char url [] =
 |  | ||||||
|  #  undef group |  | ||||||
|  #endif /* PARANOIA */ |  | ||||||
|   |  | ||||||
| +#include "trace.h"
 |  | ||||||
| +
 |  | ||||||
|  #ifndef UNIT_TEST |  | ||||||
|  static void usage(void); |  | ||||||
|  #endif |  | ||||||
| @@ -793,6 +795,8 @@ main(int argc, char **argv) {
 |  | ||||||
|  	/* Log that we are about to start working */ |  | ||||||
|  	log_info("Server starting service."); |  | ||||||
|   |  | ||||||
| +	TRACE(DHCPD_MAIN());
 |  | ||||||
| +
 |  | ||||||
|  	/* |  | ||||||
|  	 * Receive packets and dispatch them... |  | ||||||
|  	 * dispatch() will never return. |  | ||||||
| diff -up dhcp-4.3.0a1/server/dhcpv6.c.systemtap dhcp-4.3.0a1/server/dhcpv6.c
 |  | ||||||
| --- dhcp-4.3.0a1/server/dhcpv6.c.systemtap	2013-12-20 13:30:26.272643596 +0100
 |  | ||||||
| +++ dhcp-4.3.0a1/server/dhcpv6.c	2013-12-20 13:33:48.296834064 +0100
 |  | ||||||
| @@ -17,6 +17,7 @@
 |  | ||||||
|  /*! \file server/dhcpv6.c */ |  | ||||||
|   |  | ||||||
|  #include "dhcpd.h" |  | ||||||
| +#include "trace.h"
 |  | ||||||
|   |  | ||||||
|  #ifdef DHCPv6 |  | ||||||
|   |  | ||||||
| @@ -4763,6 +4764,8 @@ static void
 |  | ||||||
|  dhcpv6_solicit(struct data_string *reply_ret, struct packet *packet) { |  | ||||||
|  	struct data_string client_id; |  | ||||||
|   |  | ||||||
| +	TRACE(DHCPD_SIX_SOLICIT_START());
 |  | ||||||
| +
 |  | ||||||
|  	/*  |  | ||||||
|  	 * Validate our input. |  | ||||||
|  	 */ |  | ||||||
| @@ -4776,6 +4779,8 @@ dhcpv6_solicit(struct data_string *reply
 |  | ||||||
|  	 * Clean up. |  | ||||||
|  	 */ |  | ||||||
|  	data_string_forget(&client_id, MDL); |  | ||||||
| +
 |  | ||||||
| +	TRACE(DHCPD_SIX_SOLICIT_DONE());
 |  | ||||||
|  } |  | ||||||
|   |  | ||||||
|  /* |  | ||||||
| @@ -4789,6 +4794,8 @@ dhcpv6_request(struct data_string *reply
 |  | ||||||
|  	struct data_string client_id; |  | ||||||
|  	struct data_string server_id; |  | ||||||
|   |  | ||||||
| +	TRACE(DHCPD_SIX_REQUEST_START());
 |  | ||||||
| +
 |  | ||||||
|  	/* |  | ||||||
|  	 * Validate our input. |  | ||||||
|  	 */ |  | ||||||
| @@ -4806,6 +4813,8 @@ dhcpv6_request(struct data_string *reply
 |  | ||||||
|  	 */ |  | ||||||
|  	data_string_forget(&client_id, MDL); |  | ||||||
|  	data_string_forget(&server_id, MDL); |  | ||||||
| +
 |  | ||||||
| +	TRACE(DHCPD_SIX_REQUEST_DONE());
 |  | ||||||
|  } |  | ||||||
|   |  | ||||||
|  /* Find a DHCPv6 packet's shared network from hints in the packet. |  | ||||||
| @@ -4918,6 +4927,8 @@ dhcpv6_confirm(struct data_string *reply
 |  | ||||||
|  	struct dhcpv6_packet *reply = (struct dhcpv6_packet *)reply_data; |  | ||||||
|  	int reply_ofs = (int)(offsetof(struct dhcpv6_packet, options)); |  | ||||||
|   |  | ||||||
| +	TRACE(DHCPD_SIX_CONFIRM_START());
 |  | ||||||
| +
 |  | ||||||
|  	/*  |  | ||||||
|  	 * Basic client message validation. |  | ||||||
|  	 */ |  | ||||||
| @@ -5104,6 +5115,8 @@ exit:
 |  | ||||||
|  		option_state_dereference(&cli_enc_opt_state, MDL); |  | ||||||
|  	if (opt_state != NULL) |  | ||||||
|  		option_state_dereference(&opt_state, MDL); |  | ||||||
| +
 |  | ||||||
| +	TRACE(DHCPD_SIX_CONFIRM_DONE());
 |  | ||||||
|  } |  | ||||||
|   |  | ||||||
|  /* |  | ||||||
| @@ -5118,6 +5131,8 @@ dhcpv6_renew(struct data_string *reply,
 |  | ||||||
|  	struct data_string client_id; |  | ||||||
|  	struct data_string server_id; |  | ||||||
|   |  | ||||||
| +	TRACE(DHCPD_SIX_RENEW_START());
 |  | ||||||
| +
 |  | ||||||
|  	/*  |  | ||||||
|  	 * Validate the request. |  | ||||||
|  	 */ |  | ||||||
| @@ -5135,6 +5150,8 @@ dhcpv6_renew(struct data_string *reply,
 |  | ||||||
|  	 */ |  | ||||||
|  	data_string_forget(&server_id, MDL); |  | ||||||
|  	data_string_forget(&client_id, MDL); |  | ||||||
| +
 |  | ||||||
| +	TRACE(DHCPD_SIX_RENEW_DONE());
 |  | ||||||
|  } |  | ||||||
|   |  | ||||||
|  /* |  | ||||||
| @@ -5148,6 +5165,8 @@ static void
 |  | ||||||
|  dhcpv6_rebind(struct data_string *reply, struct packet *packet) { |  | ||||||
|  	struct data_string client_id; |  | ||||||
|   |  | ||||||
| +	TRACE(DHCPD_SIX_REBIND_START());
 |  | ||||||
| +
 |  | ||||||
|  	if (!valid_client_msg(packet, &client_id)) { |  | ||||||
|  		return; |  | ||||||
|  	} |  | ||||||
| @@ -5155,6 +5174,8 @@ dhcpv6_rebind(struct data_string *reply,
 |  | ||||||
|  	lease_to_client(reply, packet, &client_id, NULL); |  | ||||||
|   |  | ||||||
|  	data_string_forget(&client_id, MDL); |  | ||||||
| +
 |  | ||||||
| +	TRACE(DHCPD_SIX_REBIND_DONE());
 |  | ||||||
|  } |  | ||||||
|   |  | ||||||
|  static void |  | ||||||
| @@ -5599,6 +5620,8 @@ dhcpv6_decline(struct data_string *reply
 |  | ||||||
|  	struct data_string client_id; |  | ||||||
|  	struct data_string server_id; |  | ||||||
|   |  | ||||||
| +	TRACE(DHCPD_SIX_DECLINE_START());
 |  | ||||||
| +
 |  | ||||||
|  	/*  |  | ||||||
|  	 * Validate our input. |  | ||||||
|  	 */ |  | ||||||
| @@ -5619,6 +5642,8 @@ dhcpv6_decline(struct data_string *reply
 |  | ||||||
|   |  | ||||||
|  	data_string_forget(&server_id, MDL); |  | ||||||
|  	data_string_forget(&client_id, MDL); |  | ||||||
| +
 |  | ||||||
| +	TRACE(DHCPD_SIX_DECLINE_DONE());
 |  | ||||||
|  } |  | ||||||
|   |  | ||||||
|  static void |  | ||||||
| @@ -6067,6 +6092,8 @@ dhcpv6_release(struct data_string *reply
 |  | ||||||
|  	struct data_string client_id; |  | ||||||
|  	struct data_string server_id; |  | ||||||
|   |  | ||||||
| +	TRACE(DHCPD_SIX_RELEASE_START());
 |  | ||||||
| +
 |  | ||||||
|  	/*  |  | ||||||
|  	 * Validate our input. |  | ||||||
|  	 */ |  | ||||||
| @@ -6088,6 +6115,8 @@ dhcpv6_release(struct data_string *reply
 |  | ||||||
|   |  | ||||||
|  	data_string_forget(&server_id, MDL); |  | ||||||
|  	data_string_forget(&client_id, MDL); |  | ||||||
| +
 |  | ||||||
| +	TRACE(DHCPD_SIX_RELEASE_DONE());
 |  | ||||||
|  } |  | ||||||
|   |  | ||||||
|  /* |  | ||||||
| @@ -6100,6 +6129,8 @@ dhcpv6_information_request(struct data_s
 |  | ||||||
|  	struct data_string client_id; |  | ||||||
|  	struct data_string server_id; |  | ||||||
|   |  | ||||||
| +	TRACE(DHCPD_SIX_INFORMATION_REQUEST_START());
 |  | ||||||
| +
 |  | ||||||
|  	/* |  | ||||||
|  	 * Validate our input. |  | ||||||
|  	 */ |  | ||||||
| @@ -6131,6 +6162,8 @@ dhcpv6_information_request(struct data_s
 |  | ||||||
|  		data_string_forget(&client_id, MDL); |  | ||||||
|  	} |  | ||||||
|  	data_string_forget(&server_id, MDL); |  | ||||||
| +
 |  | ||||||
| +	TRACE(DHCPD_SIX_INFORMATION_REQUEST_DONE());
 |  | ||||||
|  } |  | ||||||
|   |  | ||||||
|  /*  |  | ||||||
| @@ -6159,6 +6192,8 @@ dhcpv6_relay_forw(struct data_string *re
 |  | ||||||
|  	struct dhcpv6_relay_packet *reply; |  | ||||||
|  	int reply_ofs; |  | ||||||
|   |  | ||||||
| +	TRACE(DHCPD_SIX_RELAY_FORW_START());
 |  | ||||||
| +
 |  | ||||||
|  	/*  |  | ||||||
|  	 * Initialize variables for early exit. |  | ||||||
|  	 */ |  | ||||||
| @@ -6418,6 +6453,8 @@ exit:
 |  | ||||||
|  	if (enc_packet != NULL) { |  | ||||||
|  		packet_dereference(&enc_packet, MDL); |  | ||||||
|  	} |  | ||||||
| +
 |  | ||||||
| +	TRACE(DHCPD_SIX_RELAY_FORW_DONE());
 |  | ||||||
|  } |  | ||||||
|   |  | ||||||
|  static void |  | ||||||
| diff -up dhcp-4.3.0a1/server/failover.c.systemtap dhcp-4.3.0a1/server/failover.c
 |  | ||||||
| --- dhcp-4.3.0a1/server/failover.c.systemtap	2013-12-11 01:25:12.000000000 +0100
 |  | ||||||
| +++ dhcp-4.3.0a1/server/failover.c	2013-12-20 13:30:26.314643012 +0100
 |  | ||||||
| @@ -36,6 +36,8 @@
 |  | ||||||
|  #include "dhcpd.h" |  | ||||||
|  #include <omapip/omapip_p.h> |  | ||||||
|   |  | ||||||
| +#include "trace.h"
 |  | ||||||
| +
 |  | ||||||
|  #if defined (FAILOVER_PROTOCOL) |  | ||||||
|  dhcp_failover_state_t *failover_states; |  | ||||||
|  static isc_result_t do_a_failover_option (omapi_object_t *, |  | ||||||
| @@ -1710,6 +1712,8 @@ isc_result_t dhcp_failover_set_state (dh
 |  | ||||||
|      struct lease *l; |  | ||||||
|      struct timeval tv; |  | ||||||
|   |  | ||||||
| +    TRACE(DHCPD_FAILOVER_SET_STATE_START(state->me.state, new_state));
 |  | ||||||
| +
 |  | ||||||
|      /* If we're in certain states where we're sending updates, and the peer |  | ||||||
|       * state changes, we need to re-schedule any pending updates just to |  | ||||||
|       * be on the safe side.  This results in retransmission. |  | ||||||
| @@ -1941,6 +1945,8 @@ isc_result_t dhcp_failover_set_state (dh
 |  | ||||||
|  	    break; |  | ||||||
|      } |  | ||||||
|   |  | ||||||
| +    TRACE(DHCPD_FAILOVER_SET_STATE_DONE());
 |  | ||||||
| +
 |  | ||||||
|      return ISC_R_SUCCESS; |  | ||||||
|  } |  | ||||||
|   |  | ||||||
| @@ -2428,6 +2434,8 @@ dhcp_failover_pool_dobalance(dhcp_failov
 |  | ||||||
|  	if (state -> me.state != normal) |  | ||||||
|  		return 0; |  | ||||||
|   |  | ||||||
| +	TRACE(DHCPD_FAILOVER_POOL_DOBALANCE_START());
 |  | ||||||
| +
 |  | ||||||
|  	state->last_balance = cur_time; |  | ||||||
|   |  | ||||||
|  	for (s = shared_networks ; s ; s = s->next) { |  | ||||||
| @@ -2588,6 +2596,8 @@ dhcp_failover_pool_dobalance(dhcp_failov
 |  | ||||||
|  	if (leases_queued) |  | ||||||
|  		commit_leases(); |  | ||||||
|   |  | ||||||
| +	TRACE(DHCPD_FAILOVER_POOL_DOBALANCE_DONE());
 |  | ||||||
| +
 |  | ||||||
|  	return leases_queued; |  | ||||||
|  } |  | ||||||
|   |  | ||||||
| diff -up dhcp-4.3.0a1/server/probes.d.systemtap dhcp-4.3.0a1/server/probes.d
 |  | ||||||
| --- dhcp-4.3.0a1/server/probes.d.systemtap	2013-12-20 13:30:26.314643012 +0100
 |  | ||||||
| +++ dhcp-4.3.0a1/server/probes.d	2013-12-20 13:30:26.314643012 +0100
 |  | ||||||
| @@ -0,0 +1,43 @@
 | @@ -0,0 +1,43 @@
 | ||||||
| +provider dhcpd {
 | +provider dhcpd {
 | ||||||
| +	 probe main();
 | +	 probe main();
 | ||||||
| @ -546,9 +546,9 @@ diff -up dhcp-4.3.0a1/server/probes.d.systemtap dhcp-4.3.0a1/server/probes.d | |||||||
| +	 probe failover_set_state_start(int, int);
 | +	 probe failover_set_state_start(int, int);
 | ||||||
| +	 probe failover_set_state_done();
 | +	 probe failover_set_state_done();
 | ||||||
| +};
 | +};
 | ||||||
| diff -up dhcp-4.3.0a1/server/tests/Makefile.am.systemtap dhcp-4.3.0a1/server/tests/Makefile.am
 | diff -up dhcp-4.3.1b1/server/tests/Makefile.am.systemtap dhcp-4.3.1b1/server/tests/Makefile.am
 | ||||||
| --- dhcp-4.3.0a1/server/tests/Makefile.am.systemtap	2013-12-20 13:30:26.315642998 +0100
 | --- dhcp-4.3.1b1/server/tests/Makefile.am.systemtap	2014-07-10 18:31:05.895881408 +0200
 | ||||||
| +++ dhcp-4.3.0a1/server/tests/Makefile.am	2013-12-20 13:34:57.263873891 +0100
 | +++ dhcp-4.3.1b1/server/tests/Makefile.am	2014-07-10 18:31:06.034879442 +0200
 | ||||||
| @@ -21,6 +21,10 @@ DHCPLIBS = $(top_builddir)/common/libdhc
 | @@ -21,6 +21,10 @@ DHCPLIBS = $(top_builddir)/common/libdhc
 | ||||||
|            $(top_builddir)/dhcpctl/libdhcpctl.la \ |            $(top_builddir)/dhcpctl/libdhcpctl.la \ | ||||||
|            $(BIND9_LIBDIR) -lirs-export -ldns-export -lisccfg-export -lisc-export |            $(BIND9_LIBDIR) -lirs-export -ldns-export -lisccfg-export -lisc-export | ||||||
| @ -560,9 +560,9 @@ diff -up dhcp-4.3.0a1/server/tests/Makefile.am.systemtap dhcp-4.3.0a1/server/tes | |||||||
|  ATF_TESTS = |  ATF_TESTS = | ||||||
|  TESTS =  |  TESTS =  | ||||||
|  if HAVE_ATF |  if HAVE_ATF | ||||||
| diff -up dhcp-4.3.0a1/server/trace.h.systemtap dhcp-4.3.0a1/server/trace.h
 | diff -up dhcp-4.3.1b1/server/trace.h.systemtap dhcp-4.3.1b1/server/trace.h
 | ||||||
| --- dhcp-4.3.0a1/server/trace.h.systemtap	2013-12-20 13:30:26.315642998 +0100
 | --- dhcp-4.3.1b1/server/trace.h.systemtap	2014-07-10 18:31:06.034879442 +0200
 | ||||||
| +++ dhcp-4.3.0a1/server/trace.h	2013-12-20 13:30:26.315642998 +0100
 | +++ dhcp-4.3.1b1/server/trace.h	2014-07-10 18:31:06.034879442 +0200
 | ||||||
| @@ -0,0 +1,11 @@
 | @@ -0,0 +1,11 @@
 | ||||||
| +// trace.h
 | +// trace.h
 | ||||||
| +
 | +
 | ||||||
| @ -575,39 +575,9 @@ diff -up dhcp-4.3.0a1/server/trace.h.systemtap dhcp-4.3.0a1/server/trace.h | |||||||
| +// Wrap the probe to allow it to be removed when no systemtap available
 | +// Wrap the probe to allow it to be removed when no systemtap available
 | ||||||
| +#define TRACE(probe)
 | +#define TRACE(probe)
 | ||||||
| +#endif
 | +#endif
 | ||||||
| diff -up dhcp-4.3.0a1/tapset/Makefile.am.systemtap dhcp-4.3.0a1/tapset/Makefile.am
 | diff -up dhcp-4.3.1b1/tapset/dhcpd.stp.systemtap dhcp-4.3.1b1/tapset/dhcpd.stp
 | ||||||
| --- dhcp-4.3.0a1/tapset/Makefile.am.systemtap	2013-12-20 13:30:26.315642998 +0100
 | --- dhcp-4.3.1b1/tapset/dhcpd.stp.systemtap	2014-07-10 18:31:06.035879428 +0200
 | ||||||
| +++ dhcp-4.3.0a1/tapset/Makefile.am	2013-12-20 13:30:26.315642998 +0100
 | +++ dhcp-4.3.1b1/tapset/dhcpd.stp	2014-07-10 18:31:06.035879428 +0200
 | ||||||
| @@ -0,0 +1,26 @@
 |  | ||||||
| +# Makefile.am for dhcp/tapset
 |  | ||||||
| +# Jiri Popelka
 |  | ||||||
| +
 |  | ||||||
| +.PHONY: clean-local install-data-hook uninstall-local
 |  | ||||||
| +
 |  | ||||||
| +#
 |  | ||||||
| +EXTRA_DIST = dhcpd.stp
 |  | ||||||
| +TAPSET_FILES = $(EXTRA_DIST)
 |  | ||||||
| +TAPSET_INSTALL_DIR = $(DESTDIR)@ABS_TAPSET_DIR@
 |  | ||||||
| +
 |  | ||||||
| +if ENABLE_SYSTEMTAP
 |  | ||||||
| +all-local: $(TAPSET_FILES)
 |  | ||||||
| +
 |  | ||||||
| +clean-local:
 |  | ||||||
| +
 |  | ||||||
| +install-data-hook:
 |  | ||||||
| +	$(MKDIR_P) $(TAPSET_INSTALL_DIR)
 |  | ||||||
| +	$(INSTALL_DATA) $(TAPSET_FILES) $(TAPSET_INSTALL_DIR)
 |  | ||||||
| +
 |  | ||||||
| +uninstall-local:
 |  | ||||||
| +	@list='$(TAPSET_FILES)'; for p in $$list; do \
 |  | ||||||
| +	  echo " rm -f '$(TAPSET_INSTALL_DIR)/$$p'"; \
 |  | ||||||
| +	  rm -f "$(TAPSET_INSTALL_DIR)/$$p"; \
 |  | ||||||
| +	done
 |  | ||||||
| +endif
 |  | ||||||
| +
 |  | ||||||
| diff -up dhcp-4.3.0a1/tapset/dhcpd.stp.systemtap dhcp-4.3.0a1/tapset/dhcpd.stp
 |  | ||||||
| --- dhcp-4.3.0a1/tapset/dhcpd.stp.systemtap	2013-12-20 13:30:26.315642998 +0100
 |  | ||||||
| +++ dhcp-4.3.0a1/tapset/dhcpd.stp	2013-12-20 13:30:26.315642998 +0100
 |  | ||||||
| @@ -0,0 +1,212 @@
 | @@ -0,0 +1,212 @@
 | ||||||
| +/* dhcpd tapset
 | +/* dhcpd tapset
 | ||||||
| +   Copyright (C) 2011, Red Hat Inc.
 | +   Copyright (C) 2011, Red Hat Inc.
 | ||||||
| @ -821,3 +791,33 @@ diff -up dhcp-4.3.0a1/tapset/dhcpd.stp.systemtap dhcp-4.3.0a1/tapset/dhcpd.stp | |||||||
| +{
 | +{
 | ||||||
| +  probestr = sprintf("%s", $$name);
 | +  probestr = sprintf("%s", $$name);
 | ||||||
| +}
 | +}
 | ||||||
|  | diff -up dhcp-4.3.1b1/tapset/Makefile.am.systemtap dhcp-4.3.1b1/tapset/Makefile.am
 | ||||||
|  | --- dhcp-4.3.1b1/tapset/Makefile.am.systemtap	2014-07-10 18:31:06.035879428 +0200
 | ||||||
|  | +++ dhcp-4.3.1b1/tapset/Makefile.am	2014-07-10 18:31:06.034879442 +0200
 | ||||||
|  | @@ -0,0 +1,26 @@
 | ||||||
|  | +# Makefile.am for dhcp/tapset
 | ||||||
|  | +# Jiri Popelka
 | ||||||
|  | +
 | ||||||
|  | +.PHONY: clean-local install-data-hook uninstall-local
 | ||||||
|  | +
 | ||||||
|  | +#
 | ||||||
|  | +EXTRA_DIST = dhcpd.stp
 | ||||||
|  | +TAPSET_FILES = $(EXTRA_DIST)
 | ||||||
|  | +TAPSET_INSTALL_DIR = $(DESTDIR)@ABS_TAPSET_DIR@
 | ||||||
|  | +
 | ||||||
|  | +if ENABLE_SYSTEMTAP
 | ||||||
|  | +all-local: $(TAPSET_FILES)
 | ||||||
|  | +
 | ||||||
|  | +clean-local:
 | ||||||
|  | +
 | ||||||
|  | +install-data-hook:
 | ||||||
|  | +	$(MKDIR_P) $(TAPSET_INSTALL_DIR)
 | ||||||
|  | +	$(INSTALL_DATA) $(TAPSET_FILES) $(TAPSET_INSTALL_DIR)
 | ||||||
|  | +
 | ||||||
|  | +uninstall-local:
 | ||||||
|  | +	@list='$(TAPSET_FILES)'; for p in $$list; do \
 | ||||||
|  | +	  echo " rm -f '$(TAPSET_INSTALL_DIR)/$$p'"; \
 | ||||||
|  | +	  rm -f "$(TAPSET_INSTALL_DIR)/$$p"; \
 | ||||||
|  | +	done
 | ||||||
|  | +endif
 | ||||||
|  | +
 | ||||||
|  | |||||||
							
								
								
									
										49
									
								
								dhcp.spec
									
									
									
									
									
								
							
							
						
						
									
										49
									
								
								dhcp.spec
									
									
									
									
									
								
							| @ -9,16 +9,16 @@ | |||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
| #%%global patchver P2 | #%%global patchver P2 | ||||||
| #%%global prever rc1 | %global prever b1 | ||||||
| 
 | 
 | ||||||
| #%%global VERSION %{version}-%{patchver} | #%%global VERSION %{version}-%{patchver} | ||||||
| #%%global VERSION %{version}%{prever} | #%%global VERSION %{version} | ||||||
| %global VERSION %{version} | %global VERSION %{version}%{prever} | ||||||
| 
 | 
 | ||||||
| Summary:  Dynamic host configuration protocol software | Summary:  Dynamic host configuration protocol software | ||||||
| Name:     dhcp | Name:     dhcp | ||||||
| Version:  4.3.0 | Version:  4.3.1 | ||||||
| Release:  15%{?dist} | Release:  0.1.%{prever}%{?dist} | ||||||
| # NEVER CHANGE THE EPOCH on this package.  The previous maintainer (prior to | # NEVER CHANGE THE EPOCH on this package.  The previous maintainer (prior to | ||||||
| # dcantrell maintaining the package) made incorrect use of the epoch and | # dcantrell maintaining the package) made incorrect use of the epoch and | ||||||
| # that's why it is at 12 now.  It should have never been used, but it was. | # that's why it is at 12 now.  It should have never been used, but it was. | ||||||
| @ -53,10 +53,8 @@ Patch13:  dhcp-garbage-chars.patch | |||||||
| Patch14:  dhcp-add_timeout_when_NULL.patch | Patch14:  dhcp-add_timeout_when_NULL.patch | ||||||
| Patch15:  dhcp-64_bit_lease_parse.patch | Patch15:  dhcp-64_bit_lease_parse.patch | ||||||
| Patch16:  dhcp-capability.patch | Patch16:  dhcp-capability.patch | ||||||
| Patch17:  dhcp-logpid.patch |  | ||||||
| Patch18:  dhcp-UseMulticast.patch | Patch18:  dhcp-UseMulticast.patch | ||||||
| Patch19:  dhcp-sendDecline.patch | Patch19:  dhcp-sendDecline.patch | ||||||
| Patch20:  dhcp-retransmission.patch |  | ||||||
| Patch21:  dhcp-rfc3442-classless-static-routes.patch | Patch21:  dhcp-rfc3442-classless-static-routes.patch | ||||||
| Patch22:  dhcp-honor-expired.patch | Patch22:  dhcp-honor-expired.patch | ||||||
| Patch23:  dhcp-PPP.patch | Patch23:  dhcp-PPP.patch | ||||||
| @ -67,15 +65,11 @@ Patch27:  dhcp-improved-xid.patch | |||||||
| Patch28:  dhcp-gpxe-cid.patch | Patch28:  dhcp-gpxe-cid.patch | ||||||
| Patch29:  dhcp-duidv4.patch | Patch29:  dhcp-duidv4.patch | ||||||
| Patch30:  dhcp-systemtap.patch | Patch30:  dhcp-systemtap.patch | ||||||
| Patch31:  dhcp-dhclient-decline-onetry.patch |  | ||||||
| Patch33:  dhcp-getifaddrs.patch | Patch33:  dhcp-getifaddrs.patch | ||||||
| Patch34:  dhcp-omapi-leak.patch | Patch34:  dhcp-omapi-leak.patch | ||||||
| Patch35:  dhcp-failOverPeer.patch | Patch35:  dhcp-failOverPeer.patch | ||||||
| Patch36:  dhcp-interval.patch | Patch36:  dhcp-interval.patch | ||||||
| Patch37:  dhcp-conflex-do-forward-updates.patch |  | ||||||
| Patch38:  dhcp-dupl-key.patch |  | ||||||
| Patch39:  dhcp-range6.patch | Patch39:  dhcp-range6.patch | ||||||
| Patch40:  dhcp-next-server.patch |  | ||||||
| Patch41:  dhcp-no-subnet-error2info.patch | Patch41:  dhcp-no-subnet-error2info.patch | ||||||
| Patch42:  dhcp-ffff-checksum.patch | Patch42:  dhcp-ffff-checksum.patch | ||||||
| Patch43:  dhcp-sd_notify.patch | Patch43:  dhcp-sd_notify.patch | ||||||
| @ -252,10 +246,6 @@ rm -rf includes/isc-dhcp | |||||||
| # dhclient (#517649, #546765), dhcpd/dhcrelay (#699713) | # dhclient (#517649, #546765), dhcpd/dhcrelay (#699713) | ||||||
| %patch16 -p1 -b .capability | %patch16 -p1 -b .capability | ||||||
| 
 | 
 | ||||||
| # dhclient logs its pid to make troubleshooting NM managed systems |  | ||||||
| # with multiple dhclients running easier (#546792) |  | ||||||
| %patch17 -p1 -b .logpid |  | ||||||
| 
 |  | ||||||
| # Discard unicast Request/Renew/Release/Decline message | # Discard unicast Request/Renew/Release/Decline message | ||||||
| # (unless we set unicast option) and respond with Reply | # (unless we set unicast option) and respond with Reply | ||||||
| # with UseMulticast Status Code option (#573090) | # with UseMulticast Status Code option (#573090) | ||||||
| @ -268,13 +258,6 @@ rm -rf includes/isc-dhcp | |||||||
| # (Submitted to dhcp-bugs@isc.org - [ISC-Bugs #21237]) | # (Submitted to dhcp-bugs@isc.org - [ISC-Bugs #21237]) | ||||||
| %patch19 -p1 -b .sendDecline | %patch19 -p1 -b .sendDecline | ||||||
| 
 | 
 | ||||||
| # In client initiated message exchanges stop retransmission |  | ||||||
| # upon reaching the MRD rather than at some point after it (#559153) |  | ||||||
| # (Submitted to dhcp-bugs@isc.org - [ISC-Bugs #21238]) |  | ||||||
| # It causes RHBZ#1026565 and because we carry it around *only* to silence TAHI |  | ||||||
| # tests, un-apply it until I find out how to fix it. |  | ||||||
| #%%patch20 -p1 -b .retransmission |  | ||||||
| 
 |  | ||||||
| # RFC 3442 - Classless Static Route Option for DHCPv4 (#516325) | # RFC 3442 - Classless Static Route Option for DHCPv4 (#516325) | ||||||
| # (Submitted to dhcp-bugs@isc.org - [ISC-Bugs #24572]) | # (Submitted to dhcp-bugs@isc.org - [ISC-Bugs #24572]) | ||||||
| %patch21 -p1 -b .rfc3442 | %patch21 -p1 -b .rfc3442 | ||||||
| @ -288,7 +271,6 @@ rm -rf includes/isc-dhcp | |||||||
| %patch23 -p1 -b .PPP | %patch23 -p1 -b .PPP | ||||||
| 
 | 
 | ||||||
| # dhcpd: BEFORE changing of the effective user/group ID: | # dhcpd: BEFORE changing of the effective user/group ID: | ||||||
| #  - write PID file (Submitted to dhcp-bugs@isc.org - [ISC-Bugs #25806]) |  | ||||||
| #  - chown leases file (#866714) | #  - chown leases file (#866714) | ||||||
| %patch24 -p1 -b .paranoia | %patch24 -p1 -b .paranoia | ||||||
| 
 | 
 | ||||||
| @ -306,11 +288,6 @@ rm -rf includes/isc-dhcp | |||||||
| # http://sourceware.org/systemtap/wiki/SystemTap | # http://sourceware.org/systemtap/wiki/SystemTap | ||||||
| %patch30 -p1 -b .systemtap | %patch30 -p1 -b .systemtap | ||||||
| 
 | 
 | ||||||
| # Send DHCPDECLINE and exit(2) when duplicate address was detected and |  | ||||||
| # dhclient had been started with '-1' (#756759). |  | ||||||
| # (Submitted to dhcp-bugs@isc.org - [ISC-Bugs #26735]) |  | ||||||
| %patch31 -p1 -b .decline-onetry |  | ||||||
| 
 |  | ||||||
| # Use getifaddrs() to scan for interfaces on Linux (#449946) | # Use getifaddrs() to scan for interfaces on Linux (#449946) | ||||||
| # (Submitted to dhcp-bugs@isc.org - [ISC-Bugs #28761]) | # (Submitted to dhcp-bugs@isc.org - [ISC-Bugs #28761]) | ||||||
| %patch33 -p1 -b .getifaddrs | %patch33 -p1 -b .getifaddrs | ||||||
| @ -327,22 +304,10 @@ rm -rf includes/isc-dhcp | |||||||
| # (Submitted to dhcp-bugs@isc.org - [ISC-Bugs #28038]) | # (Submitted to dhcp-bugs@isc.org - [ISC-Bugs #28038]) | ||||||
| %patch36 -p1 -b .interval | %patch36 -p1 -b .interval | ||||||
| 
 | 
 | ||||||
| # do-forward-updates statement wasn't recognized (#863646) |  | ||||||
| # (Submitted to dhcp-bugs@isc.org - [ISC-Bugs #31328]) |  | ||||||
| %patch37 -p1 -b .forward-updates |  | ||||||
| 
 |  | ||||||
| # multiple key statements in zone definition causes inappropriate error (#873794) |  | ||||||
| # (Submitted to dhcp-bugs@isc.org - [ISC-Bugs #31892]) |  | ||||||
| %patch38 -p1 -b .dupl-key |  | ||||||
| 
 |  | ||||||
| # Make sure range6 is correct for subnet6 where it's declared (#902966) | # Make sure range6 is correct for subnet6 where it's declared (#902966) | ||||||
| # (Submitted to dhcp-bugs@isc.org - [ISC-Bugs #32453]) | # (Submitted to dhcp-bugs@isc.org - [ISC-Bugs #32453]) | ||||||
| %patch39 -p1 -b .range6 | %patch39 -p1 -b .range6 | ||||||
| 
 | 
 | ||||||
| # Expose next-server DHCPv4 option to dhclient script |  | ||||||
| # (Submitted to dhcp-bugs@isc.org - [ISC-Bugs #33098]) |  | ||||||
| %patch40 -p1 -b .next-server |  | ||||||
| 
 |  | ||||||
| # 'No subnet declaration for <iface>' should be info, not error. | # 'No subnet declaration for <iface>' should be info, not error. | ||||||
| %patch41 -p1 -b .error2info | %patch41 -p1 -b .error2info | ||||||
| 
 | 
 | ||||||
| @ -390,6 +355,7 @@ CFLAGS="%{optflags} -fno-strict-aliasing" \ | |||||||
|     --with-ldapcrypto \ |     --with-ldapcrypto \ | ||||||
|     --with-libbind=%{_includedir} --with-libbind-libs=%{_libdir} \ |     --with-libbind=%{_includedir} --with-libbind-libs=%{_libdir} \ | ||||||
|     --disable-static \ |     --disable-static \ | ||||||
|  |     --enable-log-pid \ | ||||||
| %if %sdt | %if %sdt | ||||||
|     --enable-systemtap \ |     --enable-systemtap \ | ||||||
|     --with-tapset-install-dir=%{tapsetdir} \ |     --with-tapset-install-dir=%{tapsetdir} \ | ||||||
| @ -624,6 +590,9 @@ done | |||||||
| %doc doc/html/ | %doc doc/html/ | ||||||
| 
 | 
 | ||||||
| %changelog | %changelog | ||||||
|  | * Thu Jul 10 2014 Jiri Popelka <jpopelka@redhat.com> - 12:4.3.1-0.1.b1 | ||||||
|  | - 4.3.1b1 | ||||||
|  | 
 | ||||||
| * Thu Jun 12 2014 Filipe Brandenburger <filbranden@google.com> - 12:4.3.0-15 | * Thu Jun 12 2014 Filipe Brandenburger <filbranden@google.com> - 12:4.3.0-15 | ||||||
| - dhclient-script: fix issue with classless static routes that breaks Fedora 20 on GCE cloud (#1102830) | - dhclient-script: fix issue with classless static routes that breaks Fedora 20 on GCE cloud (#1102830) | ||||||
| 
 | 
 | ||||||
|  | |||||||
		Loading…
	
		Reference in New Issue
	
	Block a user