Maxim Samoylov, le ven. 26 oct. 2018 03:03:43 +0300, a ecrit:
> +void hmp_ipv6_hostfwd_remove(Monitor *mon, const QDict *qdict)
> +{
Similarly, a lot can be shared, by introducing
const char *hmp_hostfwd_lookup(Monitor *mon, const QDict *qdict, int is_v6)
which will contain all the lookup and tcp/udp parsing part, and
just return the src_str (is_v6 to avoid testing only arg1).
hmp_hostfwd_remove and hmp_ipv6_hostfwd_remove can then just start by
calling it and get src_str that it can then use to parse the IPs.
> + struct in6_addr host_addr = in6addr_any;
> + if (*(p++) != '[') {
> + goto fail_syntax;
> + }
As mentioned, better explicit this in the helper message.
> +static int slirp_ipv6_hostfwd(SlirpState *s, const char *redir_str,
> + Error **errp)
For this one I wouldn't bother factorizing, though.
Samuel