From mboxrd@z Thu Jan 1 00:00:00 1970 X-Msuck: nntp://news.gmane.org/gmane.linux.lib.musl.general/11833 Path: news.gmane.org!.POSTED!not-for-mail From: Hrvoje Varga Newsgroups: gmane.linux.lib.musl.general Subject: [PATCH] add SOCK_STREAM support for syslog Date: Mon, 21 Aug 2017 12:47:40 +0200 Message-ID: <20170821104740.10802-1-hrvoje.varga@sartura.hr> Reply-To: musl@lists.openwall.com NNTP-Posting-Host: blaine.gmane.org X-Trace: blaine.gmane.org 1503312482 15509 195.159.176.226 (21 Aug 2017 10:48:02 GMT) X-Complaints-To: usenet@blaine.gmane.org NNTP-Posting-Date: Mon, 21 Aug 2017 10:48:02 +0000 (UTC) To: musl@lists.openwall.com Original-X-From: musl-return-11846-gllmg-musl=m.gmane.org@lists.openwall.com Mon Aug 21 12:47:59 2017 Return-path: Envelope-to: gllmg-musl@m.gmane.org Original-Received: from mother.openwall.net ([195.42.179.200]) by blaine.gmane.org with smtp (Exim 4.84_2) (envelope-from ) id 1djkFR-0003gK-9H for gllmg-musl@m.gmane.org; Mon, 21 Aug 2017 12:47:57 +0200 Original-Received: (qmail 7834 invoked by uid 550); 21 Aug 2017 10:48:00 -0000 Mailing-List: contact musl-help@lists.openwall.com; run by ezmlm Precedence: bulk List-Post: List-Help: List-Unsubscribe: List-Subscribe: List-ID: Original-Received: (qmail 7768 invoked from network); 21 Aug 2017 10:47:58 -0000 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=sartura-hr.20150623.gappssmtp.com; s=20150623; h=from:to:subject:date:message-id; bh=8JusWH4J1FXOhPq8TscvMVBpA9gByZpiioNmzLyJ+uk=; b=mjWuQ8HKQw5zIzJxjpX/aShJJDhzQkoMwfKQAEZyG+8sWgKrA/07QbnzthhS9lyqb6 cH01n/HcV53/qg2URLZYWPEJIe71lvlMwhJst1ooIxwWw2Z70pqWsn/hfmWEIRdVlA1C Z0puVJ/1Wq8ZSsNxTxyU1xSgjjYI1PXgUPIR4oyB7STdI7dBQ4HV/iEFcxaGfSiScDCf m3Uycvl7F0A4aC2xRKFEje9gsqlEoKUzlg9JCqbQc32H0DqP/94VCj9ne7QdcghP1OcR 7GZZwNtivEthzdCHXl2ldcAvEC3onbfgP6oGDcBct2/lymRGYIdivRZBcc1TxAj3aRor I2UA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:subject:date:message-id; bh=8JusWH4J1FXOhPq8TscvMVBpA9gByZpiioNmzLyJ+uk=; b=ij/cb434/j4fxQQw0dXCKJpX3PEW79wBLiD1VLRjCpL/n5M60SDk7P6pVbCuEJatXX RtA/Thd/OJRyqPD2TDCOQ/xHywBA3ktfC4nbMdnihRl4OJLlhQVS9VrzpTeOizJc9K8B yjh3dj27Ce3I6iVaJP7PcqKc8WlNWqEDNq3XeoTV2tPzjN/L0/wPOrt56AHXkQ7fGV+c KrLmbVLaWu4VZOatzcORCsbq4R2Bcs1JNMAAKIY/sU3u4/UIR7Yf7ZTJpdP7kG8otvmm fG78hKl7NoFZncrS/YgnFbKoi0QOZgJ57OBI5VALHDNpRZHlmxK6h4xmHeHwPG4D//uC U7Uw== X-Gm-Message-State: AHYfb5iWt8dkCREUoVvD/VKAZkc2TXveXF1ipKKInqq3kwmgIwM//Eaq VPEzOy9H4P8yYuuK3knPthDpYk2zKCVvpMArObBKaAZh6yQYpdzuZJTSwzvtCGE+s28PZdfyFc5 c4I/tCQqG/glMmq7AvnnDtRR42vJbQ3FqpT+wPvwVtkYWh44EtxaKX4g9Yv7VWg== X-Received: by 10.28.88.82 with SMTP id m79mr6177814wmb.52.1503312466442; Mon, 21 Aug 2017 03:47:46 -0700 (PDT) X-Mailer: git-send-email 2.14.1 Xref: news.gmane.org gmane.linux.lib.musl.general:11833 Archived-At: To be consistent with glibc and uClibc since both glibc and uClibc have a support for connecting to SOCK_STREAM socket in case when connection to a SOCK_DGRAM is unsuccessful. This patch mimics the same behavior. There was a discussion whether the musl should support the SOCK_STREAM on musl mailing list http://www.openwall.com/lists/musl/2015/08/10/1. Signed-off-by: Hrvoje Varga --- src/misc/syslog.c | 18 ++++++++++++++++-- 1 file changed, 16 insertions(+), 2 deletions(-) diff --git a/src/misc/syslog.c b/src/misc/syslog.c index 9dd1ddb5..101847a4 100644 --- a/src/misc/syslog.c +++ b/src/misc/syslog.c @@ -48,8 +48,22 @@ void closelog(void) static void __openlog() { - log_fd = socket(AF_UNIX, SOCK_DGRAM|SOCK_CLOEXEC, 0); - if (log_fd >= 0) connect(log_fd, (void *)&log_addr, sizeof log_addr); + int retry = 0; + int sock_type = SOCK_DGRAM; + while (retry < 2) { + retry++; + log_fd = socket(AF_UNIX, sock_type|SOCK_CLOEXEC, 0); + if (log_fd >= 0) { + if (connect(log_fd, (void *)&log_addr, sizeof log_addr) != -1) { + return; + } + if (errno == EPROTOTYPE) { + sock_type = SOCK_STREAM; + } + close(log_fd); + log_fd = -1; + } + } } void openlog(const char *ident, int opt, int facility) -- 2.14.1