PATCH alfred

Message ID 14097889-e13c-70ae-3408-67fcf0271a96@web.de (mailing list archive)
State Changes Requested, archived
Headers

Commit Message

Jean-Jacques Sarton Nov. 1, 2016, 2:17 p.m. UTC
  I had problem with alfre which don't start. I'am using netfs.

Swen has proposed a patch which remove the batadv_interface_check()
function.
May way is an other regarding the transitional period where the
old an new feature are to be supported.

Signed-off-by: jj.sarton@t-online.de
  

Comments

Sven Eckelmann Nov. 1, 2016, 2:27 p.m. UTC | #1
On Dienstag, 1. November 2016 15:17:58 CET Jean-Jacques Sarton wrote:
> I had problem with alfre which don't start. I'am using netfs.
> 
> Swen has proposed a patch which remove the batadv_interface_check()
> function.
> May way is an other regarding the transitional period where the
> old an new feature are to be supported.
> 
> Signed-off-by: jj.sarton@t-online.de

Patch is corrupt:

    Description: PATCH alfred
    Applying: PATCH alfred
    fatal: corrupt patch at line 6
    Patch failed at 0001 PATCH alfred
    The copy of the patch that failed is found in: .git/rebase-apply/patch
    When you have resolved this problem, run "git am --continue".
    If you prefer to skip this patch, run "git am --skip" instead.
    To restore the original branch and stop patching, run "git am --abort".
    'git am' failed with exit status 128

Please check http://lxr.free-electrons.com/source/Documentation/email-clients.txt to
understand what your email client has done to the patch..

And you patch subject is bogus. Please use something more specific
than "alfred". Check following examples:

   https://patchwork.open-mesh.org/project/b.a.t.m.a.n./list/?submitter=&state=3&q=alfred%3A&archive=true&delegate=


[...]
> diff --git a/netlink.c b/netlink.c
> index 1b5695c..ca311e7 100644
> --- a/netlink.c
> +++ b/netlink.c
> @@ -365,3 +365,30 @@ int get_tq_netlink(const char *mesh_iface, const
> struct ether_addr *mac,
> 
>         return 0;
>  }
> +
> +int batadv_interface_check_netlink(const char *mesh_iface)
> +{
> +       struct get_tq_netlink_opts opts = {
> +               .tq = 0,
> +               .found = false,
> +               .query_opts = {
> +                       .err = 0,
> +               },
> +       };
> +       int ret = 0;
> +
> +       memset(&opts.mac, 0, ETH_ALEN);
> +
> +       ret = netlink_query_common(mesh_iface,  BATADV_CMD_GET_ORIGINATORS,
> +                                  get_tq_netlink_cb, &opts.query_opts);
> +       if (ret < 0)
> +               return ret;
> +
> +       memset(&opts.mac, 0, ETH_ALEN);
> +       ret = netlink_query_common(mesh_iface,  BATADV_CMD_GET_ORIGINATORS,
> +                                  get_tq_netlink_cb, &opts.query_opts);
> +
> +       if (ret < 0)
> +               return ret;

The formatting + spaces of this function seems to be quite wild.
Please clean that up.

It seems to be wrong to me that you try to query BATADV_CMD_GET_ORIGINATORS
twice but not the global translation table.

Kind regards,
	Sven
  

Patch

diff --git a/batadv_query.c b/batadv_query.c
index a671b79..c8732ef 100644
--- a/batadv_query.c
+++ b/batadv_query.c
@@ -136,7 +136,7 @@  int ipv6_to_mac(const struct in6_addr *addr, struct
ether_addr *mac)
        return 0;
 }

-int batadv_interface_check(const char *mesh_iface)
+int batadv_interface_check_debugfs(const char *mesh_iface)
 {
        char full_path[MAX_PATH + 1];
        FILE *f;
@@ -166,6 +166,18 @@  int batadv_interface_check(const char *mesh_iface)
        return 0;
 }

+int batadv_interface_check(const char *mesh_iface)
+{
+       int ret = 0;
+       enable_net_admin_capability(1);
+       ret = batadv_interface_check_netlink(mesh_iface);
+       enable_net_admin_capability(0);
+
+       if ( ret < 0 )
+               return batadv_interface_check_debugfs(mesh_iface);
+       return 0;
+}
+
 static int translate_mac_debugfs(const char *mesh_iface,
                                 const struct ether_addr *mac,
                                 struct ether_addr *mac_out)
diff --git a/netlink.c b/netlink.c
index 1b5695c..ca311e7 100644
--- a/netlink.c
+++ b/netlink.c
@@ -365,3 +365,30 @@  int get_tq_netlink(const char *mesh_iface, const
struct ether_addr *mac,

        return 0;
 }
+
+int batadv_interface_check_netlink(const char *mesh_iface)
+{
+       struct get_tq_netlink_opts opts = {
+               .tq = 0,
+               .found = false,
+               .query_opts = {
+                       .err = 0,
+               },
+       };
+       int ret = 0;
+
+       memset(&opts.mac, 0, ETH_ALEN);
+
+       ret = netlink_query_common(mesh_iface,  BATADV_CMD_GET_ORIGINATORS,
+                                  get_tq_netlink_cb, &opts.query_opts);
+       if (ret < 0)
+               return ret;
+
+       memset(&opts.mac, 0, ETH_ALEN);
+       ret = netlink_query_common(mesh_iface,  BATADV_CMD_GET_ORIGINATORS,
+                                  get_tq_netlink_cb, &opts.query_opts);
+
+       if (ret < 0)
+               return ret;
+       return 0;
+}
diff --git a/netlink.h b/netlink.h
index b08e872..9bc75a1 100644
--- a/netlink.h
+++ b/netlink.h
@@ -49,6 +49,7 @@  int translate_mac_netlink(const char *mesh_iface,
const struct ether_addr *mac,
                          struct ether_addr *mac_out);
 int get_tq_netlink(const char *mesh_iface, const struct ether_addr *mac,
                   uint8_t *tq);
+int batadv_interface_check_netlink(const char *mesh_iface);

 extern struct nla_policy batadv_netlink_policy[];