+ if (ifID->ifARouter.s_net == 0) {
+ /* Send event that this interface just got a router. This does not
+ discriminate on whether this router is valid or not. If it is not
+ valid rtmp_input will send a KEV_ATALK_ROUTERUP_INVALID event. */
+ atalk_post_msg(ifID->aa_ifp, KEV_ATALK_ROUTERUP, 0, 0);
+ }
+
NET(ourrouter) = NET(newrouter);
NODE(ourrouter) = NODE(newrouter);
}
else {
/* from gorouterless() */
NET(ourrouter) = NET(newrouter);
NODE(ourrouter) = NODE(newrouter);
}
else {
/* from gorouterless() */
ATTRACE(AT_MID_DDP, AT_SID_TIMERS, AT_LV_WARNING, FALSE,
"ddp_age_router entry : ARouter = 0x%x, RouterState = 0x%x",
ATALK_VALUE(ourrouter->ifARouter), ourrouter->ifRouterState, 0);
switch (ourrouter->ifRouterState) {
case ROUTER_AROUND :
ATTRACE(AT_MID_DDP, AT_SID_TIMERS, AT_LV_WARNING, FALSE,
"ddp_age_router entry : ARouter = 0x%x, RouterState = 0x%x",
ATALK_VALUE(ourrouter->ifARouter), ourrouter->ifRouterState, 0);
switch (ourrouter->ifRouterState) {
case ROUTER_AROUND :
ourrouter->ifThisCableStart = DDP_MIN_NETWORK;
ourrouter->ifThisCableEnd = DDP_MAX_NETWORK;
ourrouter->ifRouterState = NO_ROUTER;
ourrouter->ifThisCableStart = DDP_MIN_NETWORK;
ourrouter->ifThisCableEnd = DDP_MAX_NETWORK;
ourrouter->ifRouterState = NO_ROUTER;
- dPrintf(D_M_RTMP, D_L_STARTUP,
- ("Warning: new router came up: invalid startup net/node\n"));
+ dPrintf(D_M_RTMP, D_L_INFO, ("rtmp_input: new router came up, INVALID: net \
+ in startup range.\n"));
+ /* trackrouter sends a KEV_ATALK_ROUTERUP event to note that
+ a new router has come up when we had none before. */
trackrouter(ifID,
NET_VALUE(rtmp->at_rtmp_this_net),
rtmp->at_rtmp_id[0]
);
ifID->ifRouterState = ROUTER_WARNING;
trackrouter(ifID,
NET_VALUE(rtmp->at_rtmp_this_net),
rtmp->at_rtmp_id[0]
);
ifID->ifRouterState = ROUTER_WARNING;
+
+ /* A seed router that gives us back our cable range came up.
+ It's a valid router and gives us our network back. */
+ atalk_post_msg(ifID->aa_ifp, KEV_ATALK_ROUTERUP, 0, 0);
+
- dPrintf(D_M_RTMP,D_L_ERROR,
- ("Warning: new router came up: invalid net/node\n"));
+ /* trackrouter sends a KEV_ATALK_ROUTERUP event to note that
+ a new router has come up when we had none before. */
trackrouter(ifID,
NET_VALUE(rtmp->at_rtmp_this_net),
rtmp->at_rtmp_id[0]
);
ifID->ifRouterState = ROUTER_WARNING;
trackrouter(ifID,
NET_VALUE(rtmp->at_rtmp_this_net),
rtmp->at_rtmp_id[0]
);
ifID->ifRouterState = ROUTER_WARNING;
+
+ /* A new seed router came up, but the cable range is different
+ than what we had before. */
+ atalk_post_msg(ifID->aa_ifp, KEV_ATALK_ROUTERUP_INVALID, 0, 0);