From patchwork Tue Oct 25 16:49:16 2011 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Chuck Lever X-Patchwork-Id: 121751 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Received: from acsinet14.oracle.com (acsinet14.oracle.com [141.146.126.236]) (using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits)) (Client CN "acsinet14.oracle.com", Issuer "VeriSign Class 3 International Server CA - G3" (verified OK)) by ozlabs.org (Postfix) with ESMTPS id DA650B6F70 for ; Wed, 26 Oct 2011 03:49:35 +1100 (EST) Received: from acsinet15.oracle.com (acsinet15.oracle.com [141.146.126.227]) by acsinet14.oracle.com (Switch-3.4.4/Switch-3.4.1) with ESMTP id p9PGnX38024909 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=OK) for ; Tue, 25 Oct 2011 16:49:33 GMT Received: from ucsinet21.oracle.com (ucsinet21.oracle.com [156.151.31.93]) by acsinet15.oracle.com (Switch-3.4.4/Switch-3.4.4) with ESMTP id p9PGnSfe007470 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=OK); Tue, 25 Oct 2011 16:49:29 GMT Received: from oss.oracle.com (oss.oracle.com [141.146.12.120]) by ucsinet21.oracle.com (8.14.4+Sun/8.14.4) with ESMTP id p9PGnRX4008490 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=NO); Tue, 25 Oct 2011 16:49:28 GMT Received: from localhost ([127.0.0.1] helo=oss.oracle.com) by oss.oracle.com with esmtp (Exim 4.63) (envelope-from ) id 1RIkBm-00047i-E5; Tue, 25 Oct 2011 09:49:22 -0700 Received: from rcsinet12.oracle.com ([148.87.113.124]) by oss.oracle.com with esmtp (Exim 4.63) (envelope-from ) id 1RIkBj-00047b-Tn for fedfs-utils-devel@oss.oracle.com; Tue, 25 Oct 2011 09:49:20 -0700 Received: from mail-iy0-f171.google.com (mail-iy0-f171.google.com [209.85.210.171]) by rcsinet12.oracle.com (Sentrion-MTA-4.2.0/Sentrion-MTA-4.2.0) with ESMTP id p9PGmm29017534 (version=TLSv1/SSLv3 cipher=RC4-SHA bits=128 verify=OK) for ; Tue, 25 Oct 2011 16:49:19 GMT Received: by mail-iy0-f171.google.com with SMTP id n33so975196iae.2 for ; Tue, 25 Oct 2011 09:49:19 -0700 (PDT) Received: by 10.231.24.96 with SMTP id u32mr584155ibb.61.1319561359352; Tue, 25 Oct 2011 09:49:19 -0700 (PDT) Received: from seurat.1015granger.net (adsl-99-26-161-222.dsl.sfldmi.sbcglobal.net. [99.26.161.222]) by mx.google.com with ESMTPS id e2sm59947373ibe.0.2011.10.25.09.49.17 (version=TLSv1/SSLv3 cipher=OTHER); Tue, 25 Oct 2011 09:49:18 -0700 (PDT) From: Chuck Lever To: fedfs-utils-devel@oss.oracle.com Date: Tue, 25 Oct 2011 12:49:16 -0400 Message-ID: <20111025164916.18584.14463.stgit@seurat.1015granger.net> In-Reply-To: <20111025163952.18584.51838.stgit@seurat.1015granger.net> References: <20111025163952.18584.51838.stgit@seurat.1015granger.net> User-Agent: StGIT/0.14.3 MIME-Version: 1.0 Subject: [fedfs-utils] [PATCH 07/15] rpc.fedfsd: Squelch compiler warnings X-BeenThere: fedfs-utils-devel@oss.oracle.com X-Mailman-Version: 2.1.9 Precedence: list Reply-To: fedfs-utils Developers List-Id: fedfs-utils Developers List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: fedfs-utils-devel-bounces@oss.oracle.com Errors-To: fedfs-utils-devel-bounces@oss.oracle.com X-Source-IP: ucsinet21.oracle.com [156.151.31.93] X-CT-RefId: str=0001.0A090202.4EA6E899.011E:SCFSTAT3865452, ss=1, re=-4.000, fgs=0 We get twelve of these: listen.c:109:2: warning: dereferencing type-punned pointer might break strict-aliasing rules [-Wstrict-aliasing] And one in svc.c. Add an extra two pointer variables to squelch the warnings. Also, site-local IPv6 addresses are deprecated, so remove the test for those. Signed-off-by: Chuck Lever --- src/fedfsd/listen.c | 10 ++++------ src/fedfsd/svc.c | 4 ++-- 2 files changed, 6 insertions(+), 8 deletions(-) diff --git a/src/fedfsd/listen.c b/src/fedfsd/listen.c index fce09d7..1f0abf2 100644 --- a/src/fedfsd/listen.c +++ b/src/fedfsd/listen.c @@ -105,16 +105,14 @@ fedfsd_compare_sockaddr6(const struct sockaddr *sa1, const struct sockaddr *sa2) { const struct sockaddr_in6 *sin1 = (const struct sockaddr_in6 *)sa1; const struct sockaddr_in6 *sin2 = (const struct sockaddr_in6 *)sa2; + const struct in6_addr *in1 = &sin1->sin6_addr; + const struct in6_addr *in2 = &sin2->sin6_addr; - if ((IN6_IS_ADDR_LINKLOCAL((char *)&sin1->sin6_addr) && - IN6_IS_ADDR_LINKLOCAL((char *)&sin2->sin6_addr)) || - (IN6_IS_ADDR_SITELOCAL((char *)&sin1->sin6_addr) && - IN6_IS_ADDR_SITELOCAL((char *)&sin2->sin6_addr))) + if (IN6_IS_ADDR_LINKLOCAL(in1) && IN6_IS_ADDR_LINKLOCAL(in2)) if (sin1->sin6_scope_id != sin2->sin6_scope_id) return false; - return IN6_ARE_ADDR_EQUAL((char *)&sin1->sin6_addr, - (char *)&sin2->sin6_addr); + return IN6_ARE_ADDR_EQUAL(in1, in2); } /** diff --git a/src/fedfsd/svc.c b/src/fedfsd/svc.c index bbe1fa1..6504973 100644 --- a/src/fedfsd/svc.c +++ b/src/fedfsd/svc.c @@ -62,8 +62,8 @@ static void fedfsd_caller(struct svc_req *rqstp, char *buf, const size_t buflen) { - const struct sockaddr *sap = (struct sockaddr *)(char *) - svc_getcaller(rqstp->rq_xprt); + const struct sockaddr_in6 *sin6 = svc_getcaller(rqstp->rq_xprt); + const struct sockaddr *sap = (struct sockaddr *)sin6; socklen_t salen; switch (sap->sa_family) {