* Binding a socket means giving the corresponding node a name */
| 749 | * Binding a socket means giving the corresponding node a name |
| 750 | */ |
| 751 | static int |
| 752 | ng_bind(struct sockaddr *nam, struct ngpcb *pcbp) |
| 753 | { |
| 754 | struct ngsock *const priv = pcbp->sockdata; |
| 755 | struct sockaddr_ng *const sap = (struct sockaddr_ng *) nam; |
| 756 | |
| 757 | if (priv == NULL) { |
| 758 | TRAP_ERROR; |
| 759 | return (EINVAL); |
| 760 | } |
| 761 | if ((sap->sg_len < 4) || (sap->sg_len > (NG_NODESIZ + 2)) || |
| 762 | (sap->sg_data[0] == '\0') || |
| 763 | (sap->sg_data[sap->sg_len - 3] != '\0')) { |
| 764 | TRAP_ERROR; |
| 765 | return (EINVAL); |
| 766 | } |
| 767 | return (ng_name_node(priv->node, sap->sg_data)); |
| 768 | } |
| 769 | |
| 770 | /*************************************************************** |
| 771 | Netgraph node |
no test coverage detected