thread_funnel_switch(KERNEL_FUNNEL, NETWORK_FUNNEL);
#endif
#ifdef AFS_DARWIN80_ENV
-#if 1
resid = *alength;
memset(&msg, 0, sizeof(struct msghdr));
msg.msg_name = &ss;
}
mbuf_freem(m);
#else
- resid = *alength;
- printf("Want to read %d bytes...", resid);
- for (i=0; i < nvecs && resid; i++) {
- if (resid < iov[i].iov_len)
- iov[0].iov_len = resid;
- resid -= iov[i].iov_len;
- }
- printf("Using %d/%d iovs\n", i, nvecs);
- nvecs = i;
- rlen = 0;
- memset(&msg, 0, sizeof(struct msghdr));
- msg.msg_name = &ss;
- msg.msg_namelen = sizeof(struct sockaddr_storage);
- msg.msg_iov = &iov[0];
- msg.msg_iovlen = nvecs;
- sa =(struct sockaddr_in *) &ss;
- code = sock_receive(asocket, &msg, 0, &rlen);
- resid = *alength;
- if (resid != rlen)
- printf("recieved %d bytes\n", rlen);
- if (resid > rlen)
- resid -= rlen;
- else
- resid = 0;
-#endif
-#else
u.uio_iov = &iov[0];
u.uio_iovcnt = nvecs;
return code;
*alength -= resid;
if (sa) {
+ if (sa->sa_family == AF_INET) {
+ if (addr)
+ *addr = *(struct sockaddr_in *)sa;
+ } else
+ printf("Unknown socket family %d in NetReceive\n", sa->sa_family);
#ifndef AFS_DARWIN80_ENV
FREE(sa, M_SONAME);
#endif