/* * 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; }
/* * 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); }