- if (buf[size-1] != '\n')
- return -EINVAL;
- buf[size-1] = 0;
-
- family = mesg;
- len = qword_get(&mesg, family, size);
- if (len <= 0) return -EINVAL;
-
- tlen += len;
- udp = family+len+1;
- len = qword_get(&mesg, udp, size);
- if (len <= 0) return -EINVAL;
-
- tlen += len;
- tcp = udp+len+1;
- len = qword_get(&mesg, tcp, size);
- if (len <= 0) return -EINVAL;
-
- tlen += len;
- addr = tcp+len+1;
- len = qword_get(&mesg, addr, size);
- if (len <= 0) return -EINVAL;
-
- len = get_int(&mesg, &port);
- if (len)
- return len;
-
- tlen += sizeof(port);
- if (port)
- nfsd_port = port;
-
- if (strcmp(tcp, "tcp") == 0 || strcmp(tcp, "TCP") == 0)
- NFSCTL_TCPSET(nfsd_portbits);
- else
- NFSCTL_TCPUNSET(nfsd_portbits);
-
- if (strcmp(udp, "udp") == 0 || strcmp(udp, "UDP") == 0)
- NFSCTL_UDPSET(nfsd_portbits);
- else
- NFSCTL_UDPUNSET(nfsd_portbits);
-
- return tlen;
-}