Re: [PATCH net-next v18 20/25] ovpn: implement peer add/get/dump/delete via netlink

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



2025-02-03, 10:46:19 +0100, Antonio Quartulli wrote:
> On 03/02/2025 00:07, Sabrina Dubroca wrote:
> > 2025-01-13, 10:31:39 +0100, Antonio Quartulli wrote:
> > > +		NL_SET_ERR_MSG_FMT_MOD(info->extack,
> > > +				       "unexpected remote IP address for non UDP socket");
> > > +		sockfd_put(sock);
> > > +		return -EINVAL;
> > > +	}
> > > +
> > > +	ovpn_sock = ovpn_socket_new(sock, peer);
> > > +	if (IS_ERR(ovpn_sock)) {
> > > +		NL_SET_ERR_MSG_FMT_MOD(info->extack,
> > > +				       "cannot encapsulate socket: %ld",
> > > +				       PTR_ERR(ovpn_sock));
> > > +		sockfd_put(sock);
> > > +		return -ENOTSOCK;
> > 
> > Maybe s/-ENOTSOCK/PTR_ERR(ovpn_sock)/ ?
> > Overwriting ovpn_socket_new's -EBUSY etc with -ENOTSOCK is a bit
> > misleading to the caller.
> 
> This is the error code that userspace will see.
> Returning -EBUSY/-EALREADY for a socket error from the PEER_NEW call would
> be too vague IMHO (the user wouldn't know this is coming from the socket
> processing subroutine).
> 
> Hence the decision to explicitly return -ENOSOCK (something's wrong with the
> socket you passed) and then send the underling error in the ERR_MSG (which
> the user can inspect if he wants to learn more about what exactly went
> wrong).
> Doesn't it make sense?

Right, it doesn't matter that much as long as the user can see the
message in the extack. Error codes will always be imprecise. I find
"Not a socket" a bit inappropriate in this case ("what do you mean
it's not a socket, of course it is"), but I can live with it. In the
end the problem is what data ends up in bug reports from users
(whatever the userspace program prints), and what help developers get
from the kernel (the extack).

-- 
Sabrina




[Index of Archives]     [Linux Wireless]     [Linux Kernel]     [ATH6KL]     [Linux Bluetooth]     [Linux Netdev]     [Kernel Newbies]     [Share Photos]     [IDE]     [Security]     [Git]     [Netfilter]     [Bugtraq]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Linux ATA RAID]     [Samba]     [Device Mapper]

  Powered by Linux