From patchwork Thu Aug 23 01:01:34 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Mahesh Bandewar X-Patchwork-Id: 961109 X-Patchwork-Delegate: shemminger@vyatta.com Return-Path: X-Original-To: patchwork-incoming-netdev@ozlabs.org Delivered-To: patchwork-incoming-netdev@ozlabs.org Authentication-Results: ozlabs.org; spf=none (mailfrom) smtp.mailfrom=vger.kernel.org (client-ip=209.132.180.67; helo=vger.kernel.org; envelope-from=netdev-owner@vger.kernel.org; receiver=) Authentication-Results: ozlabs.org; dmarc=none (p=none dis=none) header.from=bandewar.net Authentication-Results: ozlabs.org; dkim=pass (2048-bit key; unprotected) header.d=bandewar-net.20150623.gappssmtp.com header.i=@bandewar-net.20150623.gappssmtp.com header.b="joXTDWcg"; dkim-atps=neutral Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by ozlabs.org (Postfix) with ESMTP id 41wmMS0qBKz9s3C for ; Thu, 23 Aug 2018 11:01:40 +1000 (AEST) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1726191AbeHWE2o (ORCPT ); Thu, 23 Aug 2018 00:28:44 -0400 Received: from mail-pf1-f193.google.com ([209.85.210.193]:35997 "EHLO mail-pf1-f193.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1725727AbeHWE2o (ORCPT ); Thu, 23 Aug 2018 00:28:44 -0400 Received: by mail-pf1-f193.google.com with SMTP id b11-v6so1805636pfo.3 for ; Wed, 22 Aug 2018 18:01:37 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=bandewar-net.20150623.gappssmtp.com; s=20150623; h=from:to:cc:subject:date:message-id:mime-version :content-transfer-encoding; bh=CA+mtCZX9dFkrkIrZqa77SYmaJeZweels7SS5a38Uh4=; b=joXTDWcgki9m6xW6hZbMogiVtVl0RU+AA3OyAmoUff10vg8S8fImB3H6XhVdkB7rFw IGLjKNuJra10TXfjqoawnmZgOsBh8cKXUwXSPI7VL42O6tXBjgehSZMcy9ZBUrTYuRVK zojR0yRf1GuvIKmR5FnbLehkXMvN+g2gH9rooVGVTAhQJF5Cp3RGhGRHIc5HKQexlgf5 FRbzDotx88yGKSOY2yjR6ZPx6cvo1teSHyA6R3z+c/b14tBUiDqv1Nw9ZgfD8t2yqI4i mELGAyeI9BTBBkd2lEKrjq2M8Z936Uxm9quJD5J/wRG6X+Ll6o3eTj3mZedcQVSQJGMw vW+g== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:mime-version :content-transfer-encoding; bh=CA+mtCZX9dFkrkIrZqa77SYmaJeZweels7SS5a38Uh4=; b=iCWRpfQfwYZdkXo4VtHG9nXOL5AkAtbNVY+3naKJgiUD3ytspdmB/83wCsFsbUz7/B cIW1gJmXVJsQ8rkLg+m16CZhDEUppK3OzgUy/By9EQ3NyrJKQfTBH6OHh17G9x8NrXVv mXA+SRhoa+FJYguVw9EHjNACLFQPXO1byQlgsH3A4xz9BGRVzqvf4rcy1DVkDEeV6Tec rJX1AVOa2k8ZgrkIaCpX+AewIaSWZIRnExaaSfFH9/GRbJO9bvTTx4Z80bx4V+lt3izm RSxWAP1zM9vdFc6WY1WG0Fdw+vMwqjp65ALWchyCZ/WZRsNG5QnES9WUh7rzYzbA83sx ZzOw== X-Gm-Message-State: AOUpUlGcUV+7XVW8WsbNmWoG+FTLM1rved6ZM5SUdyZ/fqGRNVARsoX1 DvK8N6AgVMnNkbdo2zuImZ1b93QVli4= X-Google-Smtp-Source: AA+uWPwC6E8w3ju9njgmRddTsc/N33l9xdtv4sh9KCjfDmFG9a6qn2StiQbZ7pJmqSzJJFCyK1NcOg== X-Received: by 2002:a62:dbc5:: with SMTP id f188-v6mr60941225pfg.182.1534986097216; Wed, 22 Aug 2018 18:01:37 -0700 (PDT) Received: from localhost ([2620:15c:2c4:201:c7f9:6225:a527:f3a4]) by smtp.gmail.com with ESMTPSA id a16-v6sm2729681pgv.29.2018.08.22.18.01.36 (version=TLS1_2 cipher=ECDHE-RSA-CHACHA20-POLY1305 bits=256/256); Wed, 22 Aug 2018 18:01:36 -0700 (PDT) From: Mahesh Bandewar To: Stephen Hemminger Cc: netdev , Mahesh Bandewar Subject: [PATCHv3 iproute2 1/2] ipmaddr: use preferred_family when given Date: Wed, 22 Aug 2018 18:01:34 -0700 Message-Id: <20180823010134.147851-1-mahesh@bandewar.net> X-Mailer: git-send-email 2.19.0.rc0.228.g281dcd1b4d0-goog MIME-Version: 1.0 Sender: netdev-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: netdev@vger.kernel.org From: Mahesh Bandewar When creating socket() AF_INET is used irrespective of the family that is given at the command-line (with -4, -6, or -0). This change will open the socket with the preferred family. Signed-off-by: Mahesh Bandewar --- ip/ipmaddr.c | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/ip/ipmaddr.c b/ip/ipmaddr.c index a48499029e17..abf83784d0df 100644 --- a/ip/ipmaddr.c +++ b/ip/ipmaddr.c @@ -289,6 +289,7 @@ static int multiaddr_list(int argc, char **argv) static int multiaddr_modify(int cmd, int argc, char **argv) { struct ifreq ifr = {}; + int family; int fd; if (cmd == RTM_NEWADDR) @@ -324,7 +325,17 @@ static int multiaddr_modify(int cmd, int argc, char **argv) exit(-1); } - fd = socket(AF_INET, SOCK_DGRAM, 0); + switch (preferred_family) { + case AF_INET6: + case AF_PACKET: + case AF_INET: + family = preferred_family; + break; + default: + family = AF_INET; + } + + fd = socket(family, SOCK_DGRAM, 0); if (fd < 0) { perror("Cannot create socket"); exit(1);