* Check new hook */
| 207 | * Check new hook |
| 208 | */ |
| 209 | static int |
| 210 | cisco_newhook(node_p node, hook_p hook, const char *name) |
| 211 | { |
| 212 | const sc_p sc = NG_NODE_PRIVATE(node); |
| 213 | |
| 214 | if (strcmp(name, NG_CISCO_HOOK_DOWNSTREAM) == 0) { |
| 215 | sc->downstream.hook = hook; |
| 216 | NG_HOOK_SET_PRIVATE(hook, &sc->downstream); |
| 217 | |
| 218 | /* Start keepalives */ |
| 219 | ng_callout(&sc->handle, node, NULL, (hz * KEEPALIVE_SECS), |
| 220 | &cisco_keepalive, (void *)sc, 0); |
| 221 | } else if (strcmp(name, NG_CISCO_HOOK_INET) == 0) { |
| 222 | sc->inet.hook = hook; |
| 223 | NG_HOOK_SET_PRIVATE(hook, &sc->inet); |
| 224 | } else if (strcmp(name, NG_CISCO_HOOK_INET6) == 0) { |
| 225 | sc->inet6.hook = hook; |
| 226 | NG_HOOK_SET_PRIVATE(hook, &sc->inet6); |
| 227 | } else if (strcmp(name, NG_CISCO_HOOK_APPLETALK) == 0) { |
| 228 | sc->atalk.hook = hook; |
| 229 | NG_HOOK_SET_PRIVATE(hook, &sc->atalk); |
| 230 | } else if (strcmp(name, NG_CISCO_HOOK_IPX) == 0) { |
| 231 | sc->ipx.hook = hook; |
| 232 | NG_HOOK_SET_PRIVATE(hook, &sc->ipx); |
| 233 | } else if (strcmp(name, NG_CISCO_HOOK_DEBUG) == 0) { |
| 234 | NG_HOOK_SET_PRIVATE(hook, NULL); /* unimplemented */ |
| 235 | } else |
| 236 | return (EINVAL); |
| 237 | return 0; |
| 238 | } |
| 239 | |
| 240 | /* |
| 241 | * Receive control message. |
nothing calls this directly
no test coverage detected