mirror of
https://github.com/sheumann/hush.git
synced 2024-12-22 14:30:31 +00:00
ifupdown: fixes for custom MAC address, by Wade Berrier <wberrier AT gmail.com>
This commit is contained in:
parent
8d07560eef
commit
ee777c4e5f
@ -249,6 +249,14 @@ static char *parse(const char *command, struct interface_defn_t *ifd)
|
|||||||
varvalue = get_var(command, nextpercent - command, ifd);
|
varvalue = get_var(command, nextpercent - command, ifd);
|
||||||
|
|
||||||
if (varvalue) {
|
if (varvalue) {
|
||||||
|
#if ENABLE_FEATURE_IFUPDOWN_IP
|
||||||
|
/* "hwaddress <class> <address>":
|
||||||
|
* unlike ifconfig, ip doesnt want <class>
|
||||||
|
* (usually "ether" keyword). Skip it. */
|
||||||
|
if (strncmp(command, "hwaddress", 9) == 0) {
|
||||||
|
varvalue = skip_whitespace(skip_non_whitespace(varvalue));
|
||||||
|
}
|
||||||
|
#endif
|
||||||
addstr(&result, varvalue, strlen(varvalue));
|
addstr(&result, varvalue, strlen(varvalue));
|
||||||
} else {
|
} else {
|
||||||
#if ENABLE_FEATURE_IFUPDOWN_IP
|
#if ENABLE_FEATURE_IFUPDOWN_IP
|
||||||
@ -489,7 +497,11 @@ static int dhcp_up(struct interface_defn_t *ifd, execfn *exec)
|
|||||||
unsigned i;
|
unsigned i;
|
||||||
#if ENABLE_FEATURE_IFUPDOWN_IP
|
#if ENABLE_FEATURE_IFUPDOWN_IP
|
||||||
/* ip doesn't up iface when it configures it (unlike ifconfig) */
|
/* ip doesn't up iface when it configures it (unlike ifconfig) */
|
||||||
if (!execute("ip link set %iface% up", ifd, exec))
|
if (!execute("ip link set[[ address %hwaddress%]] %iface% up", ifd, exec))
|
||||||
|
return 0;
|
||||||
|
#else
|
||||||
|
/* needed if we have hwaddress on dhcp iface */
|
||||||
|
if (!execute("ifconfig %iface%[[ hw %hwaddress%]] up", ifd, exec))
|
||||||
return 0;
|
return 0;
|
||||||
#endif
|
#endif
|
||||||
for (i = 0; i < ARRAY_SIZE(ext_dhcp_clients); i++) {
|
for (i = 0; i < ARRAY_SIZE(ext_dhcp_clients); i++) {
|
||||||
@ -504,7 +516,11 @@ static int dhcp_up(struct interface_defn_t *ifd, execfn *exec)
|
|||||||
{
|
{
|
||||||
#if ENABLE_FEATURE_IFUPDOWN_IP
|
#if ENABLE_FEATURE_IFUPDOWN_IP
|
||||||
/* ip doesn't up iface when it configures it (unlike ifconfig) */
|
/* ip doesn't up iface when it configures it (unlike ifconfig) */
|
||||||
if (!execute("ip link set %iface% up", ifd, exec))
|
if (!execute("ip link set[[ address %hwaddress%]] %iface% up", ifd, exec))
|
||||||
|
return 0;
|
||||||
|
#else
|
||||||
|
/* needed if we have hwaddress on dhcp iface */
|
||||||
|
if (!execute("ifconfig %iface%[[ hw %hwaddress%]] up", ifd, exec))
|
||||||
return 0;
|
return 0;
|
||||||
#endif
|
#endif
|
||||||
return execute("udhcpc -R -n -p /var/run/udhcpc.%iface%.pid "
|
return execute("udhcpc -R -n -p /var/run/udhcpc.%iface%.pid "
|
||||||
|
Loading…
Reference in New Issue
Block a user