static void bfd_nbrip_handler(vector_t *strvec) { bfd_t *bfd; struct sockaddr_storage nbr_addr; assert(strvec); assert(bfd_data); bfd = LIST_TAIL_DATA(bfd_data->bfd); assert(bfd); if (!strcmp(vector_slot(strvec, 1), "neighbour_ip")) neighbor_str = "neighbour"; if (inet_stosockaddr(strvec_slot(strvec, 1), BFD_CONTROL_PORT, &nbr_addr)) { report_config_error(CONFIG_GENERAL_ERROR, "Configuration error: BFD instance %s has" " malformed %s address %s, ignoring instance", bfd->iname, neighbor_str, FMT_STR_VSLOT(strvec, 1)); list_del(bfd_data->bfd, bfd); skip_block(false); return; } else if (find_bfd_by_addr(&nbr_addr)) { report_config_error(CONFIG_GENERAL_ERROR, "Configuration error: BFD instance %s has" " duplicate %s address %s, ignoring instance", bfd->iname, neighbor_str, FMT_STR_VSLOT(strvec, 1)); list_del(bfd_data->bfd, bfd); skip_block(false); return; } else bfd->nbr_addr = nbr_addr; }
static void bfd_srcip_handler(vector_t *strvec) { bfd_t *bfd; struct sockaddr_storage src_addr; assert(strvec); assert(bfd_data); bfd = LIST_TAIL_DATA(bfd_data->bfd); assert(bfd); if (inet_stosockaddr(strvec_slot(strvec, 1), NULL, &src_addr)) { report_config_error(CONFIG_GENERAL_ERROR, "Configuration error: BFD instance %s has" " malformed source address %s, ignoring", bfd->iname, FMT_STR_VSLOT(strvec, 1)); } else bfd->src_addr = src_addr; }
static void vrrp_srcip_handler(vector_t *strvec) { vrrp_t *vrrp = LIST_TAIL_DATA(vrrp_data->vrrp); struct sockaddr_storage *saddr = &vrrp->saddr; int ret; ret = inet_stosockaddr(vector_slot(strvec, 1), 0, saddr); if (ret < 0) { log_message(LOG_ERR, "Configuration error: VRRP instance[%s] malformed unicast" " src address[%s]. Skipping..." , vrrp->iname, FMT_STR_VSLOT(strvec, 1)); return; } if (saddr->ss_family != vrrp->family) { log_message(LOG_ERR, "Configuration error: VRRP instance[%s] and unicast src address" "[%s] MUST be of the same family !!! Skipping..." , vrrp->iname, FMT_STR_VSLOT(strvec, 1)); memset(saddr, 0, sizeof(struct sockaddr_storage)); } }
void bind_handler(vector strvec) { tcp_checker_t *tcp_chk = CHECKER_GET(); inet_stosockaddr(VECTOR_SLOT(strvec, 1), 0, &tcp_chk->bindto); }
/* "bindto" keyword */ static void co_srcip_handler(vector_t *strvec) { conn_opts_t *co = CHECKER_GET_CO(); inet_stosockaddr(vector_slot(strvec, 1), 0, &co->bindto); }
static void smtpip_handler(vector_t *strvec) { inet_stosockaddr(vector_slot(strvec, 1), SMTP_PORT_STR, &global_data->smtp_server); }