Lines Matching refs:sockets

48 struct inetboot_socket	sockets[MAXSOCKET] = { 0 };  variable
74 if (sockets[i].type == INETBOOT_UNUSED) { in so_check_fd()
99 sockets[i].type = INETBOOT_UNUSED; in socket()
109 if (sockets[i].type == INETBOOT_UNUSED) in socket()
118 sockets[i].so_rcvbuf = SO_DEF_RCVBUF; in socket()
119 sockets[i].so_sndbuf = SO_DEF_SNDBUF; in socket()
128 ipv4_raw_socket(&sockets[i], (uint8_t)protocol); in socket()
131 udp_socket_init(&sockets[i]); in socket()
134 tcp_socket_init(&sockets[i]); in socket()
145 ipv4_socket_init(&sockets[i]); in socket()
148 mac_socket_init(&sockets[i]); in socket()
168 *((struct sockaddr_in *)name) = sockets[i].bind; in getsockname()
195 *(uint32_t *)optval = sockets[i].in_timeout; in getsockopt()
204 (sockets[i].out_flags & SO_DONTROUTE); in getsockopt()
213 (sockets[i].so_opt & SO_REUSEADDR); in getsockopt()
221 *(int *)optval = sockets[i].so_rcvbuf; in getsockopt()
229 *(int *)optval = sockets[i].so_sndbuf; in getsockopt()
238 *(struct linger *)optval = sockets[i].so_linger; in getsockopt()
317 sockets[i].in_timeout = *(uint32_t *)optval; in setsockopt()
325 sockets[i].out_flags |= SO_DONTROUTE; in setsockopt()
327 sockets[i].out_flags &= ~SO_DONTROUTE; in setsockopt()
335 sockets[i].so_opt |= SO_REUSEADDR; in setsockopt()
337 sockets[i].so_opt &= ~SO_REUSEADDR; in setsockopt()
344 sockets[i].so_rcvbuf = *(int *)optval; in setsockopt()
345 if (sockets[i].so_rcvbuf > SO_MAX_BUF) in setsockopt()
346 sockets[i].so_rcvbuf = SO_MAX_BUF; in setsockopt()
347 (void) tcp_opt_set(sockets[i].pcb, in setsockopt()
355 sockets[i].so_sndbuf = *(int *)optval; in setsockopt()
356 if (sockets[i].so_sndbuf > SO_MAX_BUF) in setsockopt()
357 sockets[i].so_sndbuf = SO_MAX_BUF; in setsockopt()
358 (void) tcp_opt_set(sockets[i].pcb, in setsockopt()
367 sockets[i].so_linger = *(struct linger *)optval; in setsockopt()
368 (void) tcp_opt_set(sockets[i].pcb, in setsockopt()
416 if (sockets[sock_id].type != INETBOOT_STREAM) { in shutdown()
421 if (!(sockets[sock_id].so_state & SS_ISCONNECTED)) { in shutdown()
428 sockets[sock_id].so_state |= SS_CANTRCVMORE; in shutdown()
431 sockets[sock_id].so_state |= SS_CANTSENDMORE; in shutdown()
434 sockets[sock_id].so_state |= (SS_CANTRCVMORE | SS_CANTSENDMORE); in shutdown()
441 switch (sockets[sock_id].so_state & in shutdown()
446 if (sockets[sock_id].close[i] != NULL) { in shutdown()
447 (void) sockets[sock_id].close[i](sock_id); in shutdown()
450 nuke_grams(&sockets[sock_id].inq); in shutdown()
453 nuke_grams(&sockets[sock_id].inq); in shutdown()
482 if (sockets[sock_id].close[i] != NULL) { in socket_close()
492 (void) sockets[sock_id].close[i](sock_id); in socket_close()
501 nuke_grams(&sockets[sock_id].inq); in socket_close()
503 bzero((caddr_t)&sockets[sock_id], sizeof (struct inetboot_socket)); in socket_close()
504 sockets[sock_id].type = INETBOOT_UNUSED; in socket_close()
558 if (! (sockets[sock_id].so_opt & SO_REUSEADDR)) { in bind_check()
560 if (sockets[k].type != INETBOOT_UNUSED && in bind_check()
561 sockets[k].proto == sockets[sock_id].proto && in bind_check()
562 sockets[k].bound) { in bind_check()
563 if ((sockets[k].bind.sin_addr.s_addr == in bind_check()
565 (sockets[k].bind.sin_port == in bind_check()
589 if (sockets[i].bound) { in bind()
590 bzero((caddr_t)&sockets[i].bind, in bind()
592 sockets[i].bound = B_FALSE; in bind()
604 if (sockets[i].bound) { in bind()
605 if (bcmp((caddr_t)&sockets[i].bind, (caddr_t)name, in bind()
622 bcopy((caddr_t)name, (caddr_t)&sockets[i].bind, namelen); in bind()
623 if (sockets[i].type == INETBOOT_STREAM) { in bind()
628 sockets[i].bound = B_TRUE; in bind()
656 bcopy((caddr_t)&addr, (caddr_t)&sockets[sock_id].bind, in quickbind()
658 sockets[sock_id].bound = B_TRUE; in quickbind()
661 inet_ntoa(sockets[sock_id].bind.sin_addr), in quickbind()
662 ntohs(sockets[sock_id].bind.sin_port)); in quickbind()
679 if (sockets[sock_id].type != INETBOOT_STREAM) { in listen()
683 if (sockets[sock_id].so_error != 0) { in listen()
684 errno = sockets[sock_id].so_error; in listen()
700 if (sockets[sock_id].type != INETBOOT_STREAM) { in accept()
704 if (sockets[sock_id].so_error != 0) { in accept()
705 errno = sockets[sock_id].so_error; in accept()
711 sockets[sock_id].so_state |= SS_ISCONNECTED; in accept()
725 so_type = sockets[sock_id].type; in connect()
737 if (sockets[sock_id].so_state & SS_ISCONNECTED) { in connect()
742 if (sockets[sock_id].so_error != 0) { in connect()
743 errno = sockets[sock_id].so_error; in connect()
748 if (!sockets[sock_id].bound) { in connect()
761 bcopy((caddr_t)addr, &sockets[sock_id].remote, in connect()
764 if (sockets[sock_id].type == INETBOOT_STREAM) { in connect()
767 sockets[sock_id].so_state |= SS_ISCONNECTED; in connect()
769 if (sockets[sock_id].so_error != 0) in connect()
770 errno = sockets[sock_id].so_error; in connect()
774 sockets[sock_id].so_state |= SS_ISCONNECTED; in connect()
810 if (sockets[sock_id].type == INETBOOT_STREAM && in recvfrom()
811 !(sockets[sock_id].so_state & SS_ISCONNECTED)) { in recvfrom()
827 if (sockets[sock_id].inq == NULL) { in recvfrom()
830 if (sockets[sock_id].input[i] != NULL) { in recvfrom()
831 if (sockets[sock_id].input[i](sock_id) < 0) { in recvfrom()
832 if (sockets[sock_id].so_error != 0) { in recvfrom()
834 sockets[sock_id].so_error; in recvfrom()
842 so_type = sockets[sock_id].type; in recvfrom()
845 while ((icp = sockets[sock_id].inq) != NULL) { in recvfrom()
853 del_gram(&sockets[sock_id].inq, icp, B_TRUE); in recvfrom()
867 if (sockets[sock_id].so_state & SS_CANTRCVMORE) { in recvfrom()
868 if (sockets[sock_id].so_error != 0) { in recvfrom()
869 errno = sockets[sock_id].so_error; in recvfrom()
888 bcopy(&(sockets[sock_id].remote), from, MIN(*fromlen, in recvfrom()
910 del_gram(&sockets[sock_id].inq, icp, B_TRUE); in recvfrom()
929 del_gram(&sockets[sock_id].inq, icp, B_TRUE); in recvfrom()
935 while ((icp = sockets[sock_id].inq) != NULL) { in recvfrom()
938 del_gram(&sockets[sock_id].inq, icp, in recvfrom()
947 sockets[sock_id].so_rcvbuf += (int32_t)bytes; in recvfrom()
956 del_gram(&sockets[sock_id].inq, icp, B_TRUE); in recvfrom()
966 del_gram(&sockets[sock_id].inq, icp, B_TRUE); in recvfrom()
1007 so_type = sockets[sock_id].type; in sendto()
1012 if (sockets[sock_id].so_error != 0) { in sendto()
1013 errno = sockets[sock_id].so_error; in sendto()
1024 if (!(sockets[sock_id].so_state & SS_ISCONNECTED) && in sendto()
1032 if (!((sockets[sock_id].so_state & SS_ISCONNECTED) || in sendto()
1033 (sockets[sock_id].so_state & SS_ISCONNECTING))) { in sendto()
1037 if (sockets[sock_id].so_state & SS_CANTSENDMORE) { in sendto()
1068 nuke_grams(&sockets[i].inq); /* flush the input queue */ in dgram_sendto()
1071 offset = sockets[i].headerlen[MEDIA_LVL](NULL) + in dgram_sendto()
1072 (sockets[i].headerlen[NETWORK_LVL])(NULL); in dgram_sendto()
1075 if (sockets[i].type != INETBOOT_RAW) { in dgram_sendto()
1076 offset += (sockets[i].headerlen[TRANSPORT_LVL])(NULL); in dgram_sendto()
1085 bcopy((caddr_t)&sockets[i].remote, (caddr_t)&oc.igm_saddr, in dgram_sendto()
1090 if (sockets[i].bound == B_FALSE && in dgram_sendto()
1097 if (sockets[i].type == INETBOOT_DGRAM) { in dgram_sendto()
1112 if (sockets[i].output[l] != NULL) { in dgram_sendto()
1113 if (sockets[i].output[l](i, &oc) < 0) { in dgram_sendto()
1131 assert(sockets[i].pcb != NULL); in stream_sendto()
1140 if ((cnt = tcp_send(i, sockets[i].pcb, msg, len)) < 0) { in stream_sendto()
1141 if (sockets[i].so_error != 0) in stream_sendto()
1142 errno = sockets[i].so_error; in stream_sendto()