コード例 #1
0
/*
 * sco_getopt(pcb, sopt)
 *
 *	Get SCO pcb options
 */
int
sco_getopt(struct sco_pcb *pcb, struct sockopt *sopt)
{

	switch (sopt->sopt_name) {
	case SO_SCO_MTU:
		return sockopt_set(sopt, &pcb->sp_mtu, sizeof(uint16_t));

	case SO_SCO_HANDLE:
		if (pcb->sp_link)
			return sockopt_set(sopt,
			    &pcb->sp_link->hl_handle, sizeof(uint16_t));

		return ENOTCONN;

	default:
		break;
	}

	return ENOPROTOOPT;
}
コード例 #2
0
/*
 * Handle MRT getsockopt commands
 */
int
ip6_mrouter_get(struct socket *so, struct sockopt *sopt)
{
	int error;

	if (so != ip6_mrouter) return EACCES;

	error = 0;

	switch (sopt->sopt_name) {
	case MRT6_PIM:
		error = sockopt_set(sopt, &pim6, sizeof(pim6));
		break;
	default:
		error = EOPNOTSUPP;
		break;
	}

	return (error);
}