739
740 err = kernel_getpeername(newsock, sin, &slen);
741 if (err < 0) {
742 if (net_ratelimit())
743 printk(KERN_WARNING "%s: peername failed (err %d)!\n",
744 serv->sv_name, -err);
745 goto failed;
746 }
747
748
749
750
751
752 if (!svc_port_is_privileged(sin)) {
753 dprintk(KERN_WARNING
754 "%s: connect from unprivileged port: %s\n",
755 serv->sv_name,
756 __svc_print_addr(sin, buf, sizeof(buf)));
757 }
758 dprintk("%s: connect from %s\n", serv->sv_name,
759 __svc_print_addr(sin, buf, sizeof(buf)));
760
761
762
763
764 newsock->sk->sk_sndtimeo = HZ*30;
765
766 if (!(newsvsk = svc_setup_socket(serv, newsock, &err,
767 (SVC_SOCK_ANONYMOUS | SVC_SOCK_TEMPORARY))))
768 goto failed;
769 svc_xprt_set_remote(&newsvsk->sk_xprt, sin, slen);
770 err = kernel_getsockname(newsock, sin, &slen);
771 if (unlikely(err < 0)) {
772 dprintk("svc_tcp_accept: kernel_getsockname error %d\n", -err);
773 slen = offsetof(struct sockaddr, sa_data);
774 }
775 svc_xprt_set_local(&newsvsk->sk_xprt, sin, slen);
776
777 if (serv->sv_stats)
778 serv->sv_stats->nettcpconn++;
779