mirror of
https://gitlab.freedesktop.org/NetworkManager/NetworkManager
synced 2024-07-05 17:19:00 +00:00
Compare commits
5 Commits
def70f65e2
...
19e65c2843
Author | SHA1 | Date | |
---|---|---|---|
|
19e65c2843 | ||
|
14eaf4e419 | ||
|
185932a1a2 | ||
|
2b8d8fe92a | ||
|
03f0375b09 |
|
@ -337,6 +337,11 @@ struct _ifla_vf_vlan_info {
|
||||||
#define BRIDGE_VLAN_INFO_RANGE_END (1 << 4) /* VLAN is end of vlan range */
|
#define BRIDGE_VLAN_INFO_RANGE_END (1 << 4) /* VLAN is end of vlan range */
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
/* Appeared in kernel 4.2 dated August 2015 */
|
||||||
|
#ifndef RTM_F_LOOKUP_TABLE
|
||||||
|
#define RTM_F_LOOKUP_TABLE 0x1000 /* set rtm_table to FIB lookup result */
|
||||||
|
#endif
|
||||||
|
|
||||||
/*****************************************************************************/
|
/*****************************************************************************/
|
||||||
|
|
||||||
#define PSCHED_TIME_UNITS_PER_SEC 1000000
|
#define PSCHED_TIME_UNITS_PER_SEC 1000000
|
||||||
|
@ -7784,17 +7789,42 @@ _nl_msg_new_dump_rtnl(NMPObjectType obj_type, int preferred_addr_family)
|
||||||
g_return_val_if_reached(NULL);
|
g_return_val_if_reached(NULL);
|
||||||
} break;
|
} break;
|
||||||
case NMP_OBJECT_TYPE_LINK:
|
case NMP_OBJECT_TYPE_LINK:
|
||||||
|
{
|
||||||
|
struct ifinfomsg ifm = {};
|
||||||
|
|
||||||
|
if (nlmsg_append_struct(nlmsg, &ifm) < 0)
|
||||||
|
g_return_val_if_reached(NULL);
|
||||||
|
break;
|
||||||
|
}
|
||||||
case NMP_OBJECT_TYPE_IP4_ADDRESS:
|
case NMP_OBJECT_TYPE_IP4_ADDRESS:
|
||||||
case NMP_OBJECT_TYPE_IP6_ADDRESS:
|
case NMP_OBJECT_TYPE_IP6_ADDRESS:
|
||||||
case NMP_OBJECT_TYPE_IP4_ROUTE:
|
|
||||||
case NMP_OBJECT_TYPE_IP6_ROUTE:
|
|
||||||
case NMP_OBJECT_TYPE_ROUTING_RULE:
|
|
||||||
{
|
{
|
||||||
const struct rtgenmsg gmsg = {
|
struct ifaddrmsg ifm = {
|
||||||
.rtgen_family = preferred_addr_family,
|
.ifa_family = preferred_addr_family,
|
||||||
};
|
};
|
||||||
|
|
||||||
if (nlmsg_append_struct(nlmsg, &gmsg) < 0)
|
if (nlmsg_append_struct(nlmsg, &ifm) < 0)
|
||||||
|
g_return_val_if_reached(NULL);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
case NMP_OBJECT_TYPE_IP4_ROUTE:
|
||||||
|
case NMP_OBJECT_TYPE_IP6_ROUTE:
|
||||||
|
{
|
||||||
|
struct rtmsg rtm = {
|
||||||
|
.rtm_family = preferred_addr_family,
|
||||||
|
};
|
||||||
|
|
||||||
|
if (nlmsg_append_struct(nlmsg, &rtm) < 0)
|
||||||
|
g_return_val_if_reached(NULL);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
case NMP_OBJECT_TYPE_ROUTING_RULE:
|
||||||
|
{
|
||||||
|
struct fib_rule_hdr frh = {
|
||||||
|
.family = preferred_addr_family,
|
||||||
|
};
|
||||||
|
|
||||||
|
if (nlmsg_append_struct(nlmsg, &frh) < 0)
|
||||||
g_return_val_if_reached(NULL);
|
g_return_val_if_reached(NULL);
|
||||||
} break;
|
} break;
|
||||||
default:
|
default:
|
||||||
|
@ -10307,7 +10337,7 @@ ip_route_get(NMPlatform *platform,
|
||||||
.r.rtm_family = addr_family,
|
.r.rtm_family = addr_family,
|
||||||
.r.rtm_tos = 0,
|
.r.rtm_tos = 0,
|
||||||
.r.rtm_dst_len = IS_IPv4 ? 32 : 128,
|
.r.rtm_dst_len = IS_IPv4 ? 32 : 128,
|
||||||
.r.rtm_flags = 0x1000 /* RTM_F_LOOKUP_TABLE */,
|
.r.rtm_flags = IS_IPv4 ? RTM_F_LOOKUP_TABLE : 0,
|
||||||
};
|
};
|
||||||
|
|
||||||
nm_clear_pointer(&route, nmp_object_unref);
|
nm_clear_pointer(&route, nmp_object_unref);
|
||||||
|
|
|
@ -1152,6 +1152,7 @@ nl_socket_new(struct nl_sock **out_sk,
|
||||||
|
|
||||||
i_val = 1;
|
i_val = 1;
|
||||||
(void) setsockopt(sk->s_fd, SOL_NETLINK, NETLINK_EXT_ACK, &i_val, sizeof(i_val));
|
(void) setsockopt(sk->s_fd, SOL_NETLINK, NETLINK_EXT_ACK, &i_val, sizeof(i_val));
|
||||||
|
(void) setsockopt(sk->s_fd, SOL_NETLINK, NETLINK_GET_STRICT_CHK, &i_val, sizeof(i_val));
|
||||||
|
|
||||||
if (NM_FLAGS_HAS(flags, NL_SOCKET_FLAGS_PASSCRED)) {
|
if (NM_FLAGS_HAS(flags, NL_SOCKET_FLAGS_PASSCRED)) {
|
||||||
err = nl_socket_set_passcred(sk, 1);
|
err = nl_socket_set_passcred(sk, 1);
|
||||||
|
|
|
@ -416,9 +416,18 @@ nmt_newt_edit_string(const char *data)
|
||||||
|
|
||||||
len = data ? strlen(data) : 0;
|
len = data ? strlen(data) : 0;
|
||||||
while (len) {
|
while (len) {
|
||||||
do
|
|
||||||
nwrote = write(fd, data, len);
|
nwrote = write(fd, data, len);
|
||||||
while (nwrote == -1 && errno == EINTR);
|
|
||||||
|
if (nwrote == -1) {
|
||||||
|
if (errno == EINTR) {
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
|
nmt_newt_message_dialog(_("Could not write to temporary file: %s"),
|
||||||
|
nm_strerror_native(errno));
|
||||||
|
nm_close(fd);
|
||||||
|
goto done;
|
||||||
|
}
|
||||||
|
|
||||||
len -= nwrote;
|
len -= nwrote;
|
||||||
data += nwrote;
|
data += nwrote;
|
||||||
|
|
Loading…
Reference in New Issue
Block a user