Page MenuHomeFreeBSD

D36171.id.diff
No OneTemporary

D36171.id.diff

Index: sys/fs/nfsclient/nfs_clvfsops.c
===================================================================
--- sys/fs/nfsclient/nfs_clvfsops.c
+++ sys/fs/nfsclient/nfs_clvfsops.c
@@ -468,26 +468,14 @@
*/
if (nd->mygateway.sin_len != 0 &&
nd->mygateway.sin_addr.s_addr != 0) {
- struct sockaddr_in mask, sin;
struct epoch_tracker et;
- struct rt_addrinfo info;
- struct rib_cmd_info rc;
-
- bzero((caddr_t)&mask, sizeof(mask));
- sin = mask;
- sin.sin_family = AF_INET;
- sin.sin_len = sizeof(sin);
- /* XXX MRT use table 0 for this sort of thing */
+ struct rib_cmd_info rc = {};
+
NET_EPOCH_ENTER(et);
CURVNET_SET(TD_TO_VNET(td));
-
- bzero((caddr_t)&info, sizeof(info));
- info.rti_flags = RTF_UP | RTF_GATEWAY;
- info.rti_info[RTAX_DST] = (struct sockaddr *)&sin;
- info.rti_info[RTAX_GATEWAY] = (struct sockaddr *)&nd->mygateway;
- info.rti_info[RTAX_NETMASK] = (struct sockaddr *)&mask;
-
- error = rib_action(RT_DEFAULT_FIB, RTM_ADD, &info, &rc);
+ struct ifnet *ifp = ifunit(nd->myif.ifra_name);
+ struct sockaddr *gw = (struct sockaddr *)&nd->mygateway;
+ error = rib_add_default_route(RT_DEFAULT_FIB, AF_INET, ifp, gw, &rc);
CURVNET_RESTORE();
NET_EPOCH_EXIT(et);
if (error)

File Metadata

Mime Type
text/plain
Expires
Tue, Feb 3, 4:31 PM (7 h, 21 m)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
28425463
Default Alt Text
D36171.id.diff (1 KB)

Event Timeline