|
|
| version 1.3, 2022/08/19 09:42:33 | version 1.4, 2022/08/26 14:47:36 |
|---|---|
| Line 212 ipfw_config_sync(int ac, char **av) | Line 212 ipfw_config_sync(int ac, char **av) |
| } | } |
| void | void |
| ipfw_list_sync(int ac, char **av) | |
| { | |
| ipfw_obj_header *oh; | |
| struct ipfw_sync_cfg *cfg; | |
| size_t sz; | |
| SYNC_SHIFT_ARG; | |
| sz = sizeof *oh + sizeof *cfg; | |
| while (42) { | |
| if (!(oh = malloc(sz))) | |
| return; | |
| else | |
| memset(oh, 0, sz); | |
| cfg = (struct ipfw_sync_cfg*) (oh + 1); | |
| oh->ntlv.head.length = sizeof(oh->ntlv); | |
| strlcpy(oh->ntlv.name, ac ? *av : "", sizeof(oh->ntlv.name)); | |
| strlcpy(cfg->name, ac ? *av : "", sizeof(cfg->name)); | |
| if (do_get3(IP_FW_SYNC_LIST, &oh->opheader, &sz)) { | |
| free(oh); | |
| if (errno == ENOMEM) | |
| continue; | |
| return; | |
| } | |
| break; | |
| } | |
| if (!ac || !strcmp(*av, "edge")) | |
| printf("sync edge states %lu aliases %lu\n", | |
| *(uint64_t*) (cfg->addr[0].ip6.sin6_addr.s6_addr + 8), | |
| *(uint64_t*) (cfg->addr[1].ip6.sin6_addr.s6_addr + 8)); | |
| if (!ac || !strcmp(*av, "collector")) | |
| printf("sync collector states %lu aliases %lu\n", | |
| *(uint64_t*) cfg->addr[0].ip6.sin6_addr.s6_addr, | |
| *(uint64_t*) cfg->addr[1].ip6.sin6_addr.s6_addr); | |
| } | |
| void | |
| ipfw_show_sync(int ac, char **av) | ipfw_show_sync(int ac, char **av) |
| { | { |
| ipfw_obj_header *oh; | ipfw_obj_header *oh; |