コード例 #1
0
ファイル: bfd_parser.c プロジェクト: acassen/keepalived
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;
}
コード例 #2
0
ファイル: bfd_parser.c プロジェクト: acassen/keepalived
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;
}
コード例 #3
0
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));
	}
}
コード例 #4
0
ファイル: check_tcp.c プロジェクト: tclh123/lvs-tool
void
bind_handler(vector strvec)
{
	tcp_checker_t *tcp_chk = CHECKER_GET();
	inet_stosockaddr(VECTOR_SLOT(strvec, 1), 0, &tcp_chk->bindto);
}
コード例 #5
0
ファイル: check_api.c プロジェクト: daniel666/dpvs
/* "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);
}
コード例 #6
0
ファイル: global_parser.c プロジェクト: Izidor/keepalived
static void
smtpip_handler(vector_t *strvec)
{
	inet_stosockaddr(vector_slot(strvec, 1), SMTP_PORT_STR, &global_data->smtp_server);
}