From patchwork Tue Aug 21 17:48:51 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Mahesh Bandewar X-Patchwork-Id: 960662 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="JT9AZ8yG"; dkim-atps=neutral Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by ozlabs.org (Postfix) with ESMTP id 41vypb5vnPz9s47 for ; Wed, 22 Aug 2018 03:48:55 +1000 (AEST) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1727435AbeHUVKB (ORCPT ); Tue, 21 Aug 2018 17:10:01 -0400 Received: from mail-pf1-f195.google.com ([209.85.210.195]:38378 "EHLO mail-pf1-f195.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726715AbeHUVKB (ORCPT ); Tue, 21 Aug 2018 17:10:01 -0400 Received: by mail-pf1-f195.google.com with SMTP id x17-v6so8847197pfh.5 for ; Tue, 21 Aug 2018 10:48:54 -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=WcbEiLvBtXDxINI2VpkUtN+wkvJ9k875ix2afVdqCjo=; b=JT9AZ8yG9SygkSNQC3OjAa5GrBiDIHKu4tYtm/FgLT8XaOx04EJ0Q+x3L/dDdhuAdY 4BmzsM5JsTGLG4wtROWGStXAkKmwTkqVwG8WdSVUOp47SJipR/gUX2B4ddpgdjsSw6PV JIFsjrDL7r8JTn15MB8a+mEvcvJwRq6d1V7Bb5FhwNFAu2u8qTCAuFaPm1pEhTQgeWhX KfemaHmKv5pJ5OYVlfTPofNkr/JrLPUPgk7PA7ZPXGlq/4gOjbOFETFShRze0UclJS0s sUbdPy8sK2130vQ5yvSkPmfHMvVTTOSsMihsKGMdR1yW6OVvMPVwkDTOloHcU9yMTprd 9sIQ== 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=WcbEiLvBtXDxINI2VpkUtN+wkvJ9k875ix2afVdqCjo=; b=WjGHIEvmGOuNCa8V3bXshGjWXPD7EULvH/yB2IMI5sPfzU6LwY/zRg1JvLHLOU4QkO wCvzjYwlBVgG6F2ADnS1t/7QL5IRrEOupCNKkVF8YfIw024yWih1z/U7YiEQDQqcXzyX /PWpBzLPt/KFHhyJHAXVg8b8tBRqbJB/qQyXCuXD66fdoUHt7wBDtBsvh+2eAHRPASyC ykA2YCgbGib/StvT3uxjaRcRk2SMrXrifNLdJT8LUiAvNgPLLipl4e3hRBWVH1CY88jn wcDBrNCsjWmtbOrCRKi/oj14NNToCduUc0fULKJ5mJYOlOChLmw4DNrRTTuB0VZWF1FW TbbQ== X-Gm-Message-State: AOUpUlHGyOpBkGB9K4q6pOu19EjjB0bvpwbEKzW9pef4SWtFly4ON3fC tQt35PStRdZxwNvOvqd5cZGn6InHul4= X-Google-Smtp-Source: AA+uWPzNeHCdTK//Z5UgzOfwD2RKcOV/bqBbYGADqpgizDnb7j0FlbSZGV7ogOys047VFi/Af2+/ZA== X-Received: by 2002:a62:57dc:: with SMTP id i89-v6mr54028767pfj.65.1534873733993; Tue, 21 Aug 2018 10:48:53 -0700 (PDT) Received: from localhost ([2620:15c:2c4:201:c7f9:6225:a527:f3a4]) by smtp.gmail.com with ESMTPSA id y4-v6sm16743772pfm.137.2018.08.21.10.48.53 (version=TLS1_2 cipher=ECDHE-RSA-CHACHA20-POLY1305 bits=256/256); Tue, 21 Aug 2018 10:48:53 -0700 (PDT) From: Mahesh Bandewar To: Stephen Hemminger Cc: netdev , Mahesh Bandewar Subject: [PATCHv2 iproute2 1/3] ipmaddr: use preferred_family when given Date: Tue, 21 Aug 2018 10:48:51 -0700 Message-Id: <20180821174851.208490-1-mahesh@bandewar.net> X-Mailer: git-send-email 2.18.0.865.gffc8e1a3cd6-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);