X-Git-Url: https://git.saurik.com/apple/xnu.git/blobdiff_plain/1c79356b52d46aa6b508fb032f5ae709b1f2897b..9bccf70c0258c7cac2dcb80011b2a964d884c552:/bsd/netat/ddp_r_rtmp.c diff --git a/bsd/netat/ddp_r_rtmp.c b/bsd/netat/ddp_r_rtmp.c index 4c74b7fae..666a59998 100644 --- a/bsd/netat/ddp_r_rtmp.c +++ b/bsd/netat/ddp_r_rtmp.c @@ -65,6 +65,8 @@ #include #include +#include + extern void (*ddp_AURPsendx)(); extern at_ifaddr_t *aurp_ifID; extern at_ifaddr_t *ifID_table[]; @@ -1387,7 +1389,7 @@ int rtmp_router_start(keP) /* set the right net and node for each port */ Entry->NextIRNet = ifID->ifThisNode.s_net; Entry->NextIRNode= ifID->ifThisNode.s_node; - + dPrintf(D_M_RTMP, D_L_STARTUP, ("rtmp_router_start: bring port=%d [%d.%d]... on line\n", ifID->ifPort, ifID->ifThisNode.s_net, @@ -1430,6 +1432,12 @@ int rtmp_router_start(keP) != EWOULDBLOCK) { goto error; } + + /* Is the stack still up ? */ + if (!(at_state.flags & AT_ST_STARTED) || !ifID_home) { + err = ECONNABORTED; + goto error; + } startZoneInfo: err = 0; @@ -1470,6 +1478,12 @@ startZoneInfo: != EWOULDBLOCK) { goto error; } + + /* Is the stack still up ? */ + if (!(at_state.flags & AT_ST_STARTED) || !ifID_home) { + err = ECONNABORTED; + goto error; + } err = 0; router_starting_timer++; @@ -1514,6 +1528,9 @@ startZoneInfo: if ((ifID == ifID_home) || MULTIHOME_MODE) { ifID->ifZoneName = ZT_table[Index-1].Zone; (void)regDefaultZone(ifID); + + /* Send zone change event */ + atalk_post_msg(ifID->aa_ifp, KEV_ATALK_ZONEUPDATED, 0, &(ifID->ifZoneName)); } } }