Lines Matching defs:pData

48 struct socket * soCloneUDPSocketWithForegnAddr(PNATState pData, bool fBindSocket, struct socket *pSo, uint32_t u32ForeignAddr)
61 if (udp_attach(pData, pNewSocket, 0) <= 0)
63 sofree(pData, pNewSocket);
72 insque(pData, pNewSocket, &udb);
83 struct socket *soLookUpClonedUDPSocket(PNATState pData, const struct socket *pcSo, uint32_t u32ForeignAddress)
105 DECLINLINE(bool) slirpSend2Home(PNATState pData, struct socket *pSo, const void *pvBuf, uint32_t cbBuf, int iFlags)
111 for (idxAddr = 0; idxAddr < pData->cInHomeAddressSize; ++idxAddr)
114 struct socket *pNewSocket = soCloneUDPSocketWithForegnAddr(pData, pSo, pData->pInSockAddrHomeAddress[idxAddr].sin_addr);
116 pData->pInSockAddrHomeAddress[idxAddr].sin_port = pSo->so_fport;
120 LogFunc(("send %d bytes to %RTnaipv4 from %R[natsock]\n", cbBuf, pData->pInSockAddrHomeAddress[idxAddr].sin_addr.s_addr, pNewSocket));
121 ret = sendto(pNewSocket->s, pvBuf, cbBuf, iFlags, (struct sockaddr *)&pData->pInSockAddrHomeAddress[idxAddr], sizeof(struct sockaddr_in));
123 LogFunc(("Failed to send %d bytes to %RTnaipv4\n", cbBuf, pData->pInSockAddrHomeAddress[idxAddr].sin_addr.s_addr));
185 sofree(PNATState pData, struct socket *so)
213 m_freem(pData, so->so_m);
225 remque(pData, so); /* crashes if so is not in a queue */
239 soread(PNATState pData, struct socket *so)
247 STAM_PROFILE_START(&pData->StatIOread, a);
248 STAM_COUNTER_RESET(&pData->StatIORead_in_1);
249 STAM_COUNTER_RESET(&pData->StatIORead_in_2);
342 STAM_PROFILE_STOP(&pData->StatIOread, a);
349 STAM_PROFILE_STOP(&pData->StatIOread, a);
363 tcp_sockclosed(pData, sototcpcb(so));
365 tcp_drop(pData, sototcpcb(so), errno);
367 STAM_PROFILE_STOP(&pData->StatIOread, a);
374 STAM_COUNTER_INC(&pData->StatIORead_in_1);
375 STAM_COUNTER_ADD(&pData->StatIORead_in_1_bytes, nn);
379 STAM_COUNTER_INC(&pData->StatIORead_in_2);
380 STAM_COUNTER_ADD(&pData->StatIORead_in_2_1st_bytes, nn);
403 STAM_COUNTER_INC(&pData->StatIORead_in_2);
404 STAM_COUNTER_ADD(&pData->StatIORead_in_2_2nd_bytes, ret);
421 STAM_PROFILE_STOP(&pData->StatIOread, a);
434 sorecvoob(PNATState pData, struct socket *so)
449 ret = soread(pData, so);
454 tcp_output(pData, tp);
528 sowrite(PNATState pData, struct socket *so)
535 STAM_PROFILE_START(&pData->StatIOwrite, a);
536 STAM_COUNTER_RESET(&pData->StatIOWrite_in_1);
537 STAM_COUNTER_RESET(&pData->StatIOWrite_in_1_bytes);
538 STAM_COUNTER_RESET(&pData->StatIOWrite_in_2);
539 STAM_COUNTER_RESET(&pData->StatIOWrite_in_2_1st_bytes);
540 STAM_COUNTER_RESET(&pData->StatIOWrite_in_2_2nd_bytes);
541 STAM_COUNTER_RESET(&pData->StatIOWrite_no_w);
542 STAM_COUNTER_RESET(&pData->StatIOWrite_rest);
543 STAM_COUNTER_RESET(&pData->StatIOWrite_rest_bytes);
555 STAM_PROFILE_STOP(&pData->StatIOwrite, a);
598 STAM_COUNTER_INC(&pData->StatIOWrite_in_1);
599 STAM_COUNTER_ADD(&pData->StatIOWrite_in_1_bytes, iov[0].iov_len);
603 STAM_COUNTER_INC(&pData->StatIOWrite_in_2);
604 STAM_COUNTER_ADD(&pData->StatIOWrite_in_2_1st_bytes, iov[0].iov_len);
605 STAM_COUNTER_ADD(&pData->StatIOWrite_in_2_2nd_bytes, iov[1].iov_len);
620 STAM_PROFILE_STOP(&pData->StatIOwrite, a);
629 tcp_sockclosed(pData, sototcpcb(so));
631 STAM_PROFILE_STOP(&pData->StatIOwrite, a);
645 STAM_COUNTER_INC(&pData->StatIOWrite_rest);
646 STAM_COUNTER_ADD(&pData->StatIOWrite_rest_bytes, (iov[1].iov_len - ret));
671 STAM_PROFILE_STOP(&pData->StatIOwrite, a);
679 sorecvfrom(PNATState pData, struct socket *so)
690 sorecvfrom_icmp_unix(pData, so);
691 udp_detach(pData, so);
709 m = m_getjcl(pData, M_NOWAIT, MT_HEADER, M_PKTHDR, slirp_size(pData));
764 m_append(pData, m, nread - iov[0].iov_len, iov[1].iov_base);
787 if ( pData->fUseDnsProxy
790 dnsproxy_answer(pData, so, m);
800 udp_output(pData, so, m, &addr);
804 m_freem(pData, m);
817 icmp_error(pData, so->so_m, ICMP_UNREACH, code, 0, strerror(errno));
830 sosendto(PNATState pData, struct socket *so, struct mbuf *m)
849 if ((so->so_faddr.s_addr & RT_H2N_U32(pData->netmask)) == pData->special_addr.s_addr)
852 uint32_t last_byte = RT_N2H_U32(so->so_faddr.s_addr) & ~pData->netmask;
874 if (last_byte == ~pData->netmask)
906 if (slirpIsWideCasting(pData, so->so_faddr.s_addr))
908 slirpSend2Home(pData, so, buf, mlen, 0);
933 solisten(PNATState pData, u_int32_t bind_addr, u_int port, u_int32_t laddr, u_int lport, int flags)
950 if ((so->so_tcpcb = tcp_newtcpcb(pData, so)) == NULL)
959 insque(pData, so,&tcb);
989 || (listen(s, pData->soMaxConn) < 0))
995 sofree(pData, so);
1003 tcp_close(pData, sototcpcb(so));
1005 sofree(pData, so);
1017 opt = pData->socket_rcv;
1024 opt = pData->socket_snd;
1153 send_icmp_to_guest(PNATState pData, char *buff, size_t len, const struct sockaddr_in *addr)
1219 icm = icmp_find_original_mbuf(pData, ip);
1280 m_copyback(pData, m, original_hlen, len - hlen, buff + hlen);
1296 icmp_reflect(pData, m);
1298 pData->cIcmpCacheSize--;
1309 udp_detach(pData, icm->im_so);
1322 static void sorecvfrom_icmp_unix(PNATState pData, struct socket *so)
1354 icmp_error(pData, so->so_m, ICMP_UNREACH, code, 0, strerror(errno));
1408 send_icmp_to_guest(pData, buff, len, &addr);