From patchwork Thu Jun 18 17:24:42 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: Clement Leger X-Patchwork-Id: 1312330 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: ozlabs.org; spf=none (no SPF record) smtp.mailfrom=uclibc-ng.org (client-ip=2a00:1828:2000:679::23; helo=helium.openadk.org; envelope-from=devel-bounces@uclibc-ng.org; receiver=) Authentication-Results: ozlabs.org; dmarc=fail (p=quarantine dis=none) header.from=kalray.eu Authentication-Results: ozlabs.org; dkim=fail reason="signature verification failed" (1024-bit key; unprotected) header.d=kalray.eu header.i=@kalray.eu header.a=rsa-sha256 header.s=32AE1B44-9502-11E5-BA35-3734643DEF29 header.b=kEHtI4PK; dkim-atps=neutral Received: from helium.openadk.org (helium.openadk.org [IPv6:2a00:1828:2000:679::23]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ozlabs.org (Postfix) with ESMTPS id 49npjK09cBz9sRR for ; Fri, 19 Jun 2020 03:25:06 +1000 (AEST) Received: from helium.openadk.org (localhost [IPv6:::1]) by helium.openadk.org (Postfix) with ESMTP id 42A3810087; Thu, 18 Jun 2020 19:24:57 +0200 (CEST) X-Original-To: devel@uclibc-ng.org Delivered-To: devel@helium.openadk.org Received: from zimbra2.kalray.eu (zimbra2.kalray.eu [92.103.151.219]) by helium.openadk.org (Postfix) with ESMTPS id 5F04910087 for ; Thu, 18 Jun 2020 19:24:54 +0200 (CEST) Received: from localhost (localhost [127.0.0.1]) by zimbra2.kalray.eu (Postfix) with ESMTP id F126727E102A for ; Thu, 18 Jun 2020 19:24:53 +0200 (CEST) Received: from zimbra2.kalray.eu ([127.0.0.1]) by localhost (zimbra2.kalray.eu [127.0.0.1]) (amavisd-new, port 10032) with ESMTP id QR4tyn5CGh83; Thu, 18 Jun 2020 19:24:53 +0200 (CEST) Received: from localhost (localhost [127.0.0.1]) by zimbra2.kalray.eu (Postfix) with ESMTP id 4B28227E1025; Thu, 18 Jun 2020 19:24:53 +0200 (CEST) DKIM-Filter: OpenDKIM Filter v2.10.3 zimbra2.kalray.eu 4B28227E1025 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=kalray.eu; s=32AE1B44-9502-11E5-BA35-3734643DEF29; t=1592501093; bh=t/uw1UEZ6j5rupW7YYf1kFtiUWUwZEONhCIKXofxTqs=; h=From:To:Date:Message-Id:MIME-Version; b=kEHtI4PKtKbc0GZ02w6dqWs6tBguvhzwsx7q4iuwzemXXDg6XRb20x5SsssNp2ZRE ByIjkx1V+CjFPXJaQUOEQuZFghzheQIRgh4O7jfZuaeJvTzDyA9BBQpS+menVjQezD F+SLKluSzqqIBk0BbUvKkFza30SBLwptddG6RfSU= X-Virus-Scanned: amavisd-new at zimbra2.kalray.eu Received: from zimbra2.kalray.eu ([127.0.0.1]) by localhost (zimbra2.kalray.eu [127.0.0.1]) (amavisd-new, port 10026) with ESMTP id OpXYSMp-UQME; Thu, 18 Jun 2020 19:24:53 +0200 (CEST) Received: from triton.lin.mbt.kalray.eu (unknown [192.168.37.25]) by zimbra2.kalray.eu (Postfix) with ESMTPSA id 37A1527E079B; Thu, 18 Jun 2020 19:24:53 +0200 (CEST) From: Clement Leger To: devel@uclibc-ng.org Date: Thu, 18 Jun 2020 19:24:42 +0200 Message-Id: <20200618172442.3242-1-cleger@kalray.eu> X-Mailer: git-send-email 2.17.1 MIME-Version: 1.0 Subject: [uclibc-ng-devel] [PATCH] inet: add sockatmark implementation X-BeenThere: devel@uclibc-ng.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: uClibc-ng Development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: devel-bounces@uclibc-ng.org Sender: "devel" Import musl C sockatmark implementation into uClibc-ng. Signed-off-by: Clement Leger Acked-by: Yann Sionneau --- include/sys/socket.h | 2 +- libc/inet/Makefile.in | 2 +- libc/inet/sockatmark.c | 38 ++++++++++++++++++++++++++++++++++++++ 3 files changed, 40 insertions(+), 2 deletions(-) create mode 100644 libc/inet/sockatmark.c diff --git a/include/sys/socket.h b/include/sys/socket.h index 83e1fcaa2..c8df3057f 100644 --- a/include/sys/socket.h +++ b/include/sys/socket.h @@ -281,7 +281,7 @@ libc_hidden_proto(accept4) extern int shutdown (int __fd, int __how) __THROW; -#if 0 /*def __USE_XOPEN2K*/ +#ifdef __USE_XOPEN2K /* Determine wheter socket is at a out-of-band mark. */ extern int sockatmark (int __fd) __THROW; #endif diff --git a/libc/inet/Makefile.in b/libc/inet/Makefile.in index bed76c30c..91c417cc2 100644 --- a/libc/inet/Makefile.in +++ b/libc/inet/Makefile.in @@ -50,7 +50,7 @@ socketcalls_CSRC-y += \ sendto.c setsockopt.c shutdown.c socket.c socketpair.c \ recvmmsg.c sendmmsg.c socketcalls_CSRC-$(UCLIBC_LINUX_SPECIFIC) += accept4.c -CSRC-$(UCLIBC_HAS_SOCKET) += $(socketcalls_CSRC-y) opensock.c +CSRC-$(UCLIBC_HAS_SOCKET) += $(socketcalls_CSRC-y) opensock.c sockatmark.c CSRC-$(findstring y,$(UCLIBC_HAS_SOCKET)$(V4_OR_V6)) += ethers.c ether_addr.c diff --git a/libc/inet/sockatmark.c b/libc/inet/sockatmark.c new file mode 100644 index 000000000..6c6e29422 --- /dev/null +++ b/libc/inet/sockatmark.c @@ -0,0 +1,38 @@ +/* + * Copyright © 2005-2020 Rich Felker, et al. + * + * Permission is hereby granted, free of charge, to any person obtaining + * a copy of this software and associated documentation files (the + * "Software"), to deal in the Software without restriction, including + * without limitation the rights to use, copy, modify, merge, publish, + * distribute, sublicense, and/or sell copies of the Software, and to + * permit persons to whom the Software is furnished to do so, subject to + * the following conditions: + * + * The above copyright notice and this permission notice shall be + * included in all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, + * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. + * IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY + * CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, + * TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE + * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + * + * Imported from musl C library + */ + +#include +#include + +/* Determine whether socket is at a out-of-band mark. */ +int sockatmark(int fd) +{ + int ret; + + if (ioctl(fd, SIOCATMARK, &ret) < 0) + return -1; + + return ret; +}