Thread (25 messages) 25 messages, 3 authors, 2018-02-26

Re: [PATCH iproute2-next v3 8/8] iplink: Reduce number of arguments to iplink_parse()

flat view

From: Serhey Popovych <hidden>
Date: 2018-02-26 18:38:32

David Ahern wrote:
On 2/26/18 11:20 AM, Serhey Popovych wrote:
quoted
Stephen Hemminger wrote:
quoted
On Thu, 22 Feb 2018 15:02:06 +0200
Serhey Popovych [off-list ref] wrote:
quoted
+struct iplink_parse_args {
+	const char *dev;
+	const char *name;
+	const char *type;
+
+	/* This definitely must be the last one and initialized
+	 * by the caller of iplink_parse() that will initialize rest.
+	 */
+	struct iplink_req *req;
+};
+
No control block please.
Accepted.
quoted
If you have too many arguments, then that means you need to do
some refactoring.
So using structure as single argument to a function isn't an option?
quoted
As I mentioned before, iplink_parse should not be used by vxcan or veth
as they only want a subset of the parsing. Once you take those users
out, iplink_parse becomes local to iplink.c with a single user. In which
case I suspect the compiler will always inline the function so no
refactoring on the number of arguments is needed.
I will implement cut down function to parse vxcan and veth peer device
parameters and reuse it in iplink_parse() to avoid code duplications.

But my final goal not to refactor on number of arguments to parse,
that's side product of this series, I want to take @name, @dev and
other parameters for later use. In ->parse_opt() modules @name, @dev
and others are not available easily. It seems only way to get them is
to parse supplied netlink buffer.


Attachments

Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help