From nobody Mon Feb 19 16:10:16 2024 X-Original-To: dev-commits-src-all@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4TdnZ12SLmz5C58T; Mon, 19 Feb 2024 16:10:17 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4TdnZ05wcMz4P0S; Mon, 19 Feb 2024 16:10:16 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1708359016; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=yXBFS7IMy6mYXhC73a+KqLwUW271CbmwVP3SyY39ILE=; b=mCUv3OmW9/jh5l+6EloJ9LLDVucp0ZLG0HfisCfZsY5UwNDaqWRQx5ncBiMAVm0P3GlYOD xWQ6x+Tl03lLKwAEuRe3EssIn+K6FHUcQAbVsNf0qpWpv1T/ItKDoBgme5GxbA6vZxhzJK 6ZleeaifZcsiOoR0rR2yeKVXDkRlmR1pCxQhjEQ3Gl9ONXkNVr6596pEJk3qa89CAmoowS eEMWXRlxxGFSSppOpKyqUt4Au+ZRUQgy6WhQsZK9zqZdhNjY63r99ZTv6/e1o8sJC8Lkss gwSrlSHps7OTRe/51lUT2Hd2DIQL8jX/Xbea5+tSwId3gl5vIGREXqwMDySPZg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1708359016; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=yXBFS7IMy6mYXhC73a+KqLwUW271CbmwVP3SyY39ILE=; b=r3rLe4tx3HXqH77THkR01v5NaLav261Q+f/RzgArqhPFhaKSUEzQENHgBtZYT61wR677qg bd0FgXMPugHX0kw4YXGtnTZL4DdiZOlEP2pUTVDGir6yAi6Ww3hJz6Jrd37VDk54xS9Sba gscPV5GvvFl16WEeCW10zp7GiJp31orBcxqkloD9DjwrFnK3KW/PbMtIwixNJOSXnXC3j2 rOXq4QCPlV28cXueAhKqex4Zz0Jh6+lcC1yr+jbSJ7V1lLyBVY6CtWd8YTSLwCtRrDzMt4 wkdVBEJjJ3CT4kUD5g/HaQmki/uqBUcZZbPyTDgHJbm6UEbPQ+fZL+jLMN0sBg== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1708359016; a=rsa-sha256; cv=none; b=qaZVRp1cvl0+qHR/BsVxqT+rg7EGWAirUW2OaYKRQsr3oD1Wo+0qjZRANmHO3aeF7kne3O q6h7XotbBOirhjAF8d2529+a04fA7p/SHZMJjhyEQ6eISG2Axa51CM5IkUiSiJ3RBsJJWQ MmT6cTg/JIE17n/ysQ2VXQFaf28K0BqH8FgKexZvymNlhdf2YQLG4+72FrE+65Stxf5xe1 ro1ZofUGVInhQaljR3wxI9FWj6jE2ZWqG4mF8MsENwWbBU5wQ9Tx2FW/krqlR2Tpek3Hn3 klYR/0k7grglgr3vbRXDITnalCSdJis8EoUOQdy8s8jYqaqUxyFNN445CltZhg== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4TdnZ04zZVzhS0; Mon, 19 Feb 2024 16:10:16 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.17.1/8.17.1) with ESMTP id 41JGAGK5034901; Mon, 19 Feb 2024 16:10:16 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.17.1/8.17.1/Submit) id 41JGAGhk034893; Mon, 19 Feb 2024 16:10:16 GMT (envelope-from git) Date: Mon, 19 Feb 2024 16:10:16 GMT Message-Id: <202402191610.41JGAGhk034893@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: "Bjoern A. Zeeb" Subject: git: 4a646242c37f - releng/13.3 - wpa: ctrl_iface set sendbuf size List-Id: Commit messages for all branches of the src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-all List-Help: List-Post: List-Subscribe: List-Unsubscribe: Sender: owner-dev-commits-src-all@freebsd.org X-BeenThere: dev-commits-src-all@freebsd.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: bz X-Git-Repository: src X-Git-Refname: refs/heads/releng/13.3 X-Git-Reftype: branch X-Git-Commit: 4a646242c37f59d18cadb0ef0bb92860846d2db8 Auto-Submitted: auto-generated The branch releng/13.3 has been updated by bz: URL: https://cgit.FreeBSD.org/src/commit/?id=4a646242c37f59d18cadb0ef0bb92860846d2db8 commit 4a646242c37f59d18cadb0ef0bb92860846d2db8 Author: Bjoern A. Zeeb AuthorDate: 2023-11-12 20:33:41 +0000 Commit: Bjoern A. Zeeb CommitDate: 2024-02-19 16:06:34 +0000 wpa: ctrl_iface set sendbuf size In order to avoid running into the default net.local.dgram.maxdgram of 2K currently when calling sendto(2) try to set the sndbuf size to the maximum ctrl message size. While on 14 and 15 this does not actually raise the limit anymore (and be7c095ac99ad29fd72b780c7d58949a38656c66 raised it for syslogd and this), FreeBSD 13 still requires this change and it will work as expected there. In addition we always ensure a large enough send buffer this way independent of kernel defaults. The problem occured, e.g., when the scan_list result had enough BSSIDs so the text output would exceed 2048 bytes. Approved by: re (cperciva) Sponsored by: The FreeBSD Foundation PR: 274990 Reviewed by: cy, adrian (with previous comment) Differential Revision: https://reviews.freebsd.org/D42558 (cherry picked from commit 1edc20b76953d9ef571b0bcf89b206b98ed13d9b) (cherry picked from commit 97186b5cf5aa1d97f1a4e8e1b811315a39fb163d) --- contrib/wpa/wpa_supplicant/ctrl_iface_unix.c | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) diff --git a/contrib/wpa/wpa_supplicant/ctrl_iface_unix.c b/contrib/wpa/wpa_supplicant/ctrl_iface_unix.c index 639573dae75e..deeed2b11833 100644 --- a/contrib/wpa/wpa_supplicant/ctrl_iface_unix.c +++ b/contrib/wpa/wpa_supplicant/ctrl_iface_unix.c @@ -506,6 +506,10 @@ static int wpas_ctrl_iface_open_sock(struct wpa_supplicant *wpa_s, struct group *grp; char *endp; int flags; +#if defined(__FreeBSD__) + int optval, rc; + socklen_t optlen; +#endif buf = os_strdup(wpa_s->conf->ctrl_interface); if (buf == NULL) @@ -679,6 +683,22 @@ havesock: } } +#if defined(__FreeBSD__) + /* Ensure we can send a full length message atomically. */ + optval = 0; + optlen = sizeof(optval); + if (getsockopt(priv->sock, SOL_SOCKET, SO_SNDBUF, &optval, &optlen) == -1) { + wpa_printf(MSG_INFO, "failed to get sndbuf for sock=%d: %s", + priv->sock, strerror(errno)); + } else if (optval < CTRL_IFACE_MAX_LEN) { + optval = CTRL_IFACE_MAX_LEN; + if (setsockopt(priv->sock, SOL_SOCKET, SO_SNDBUF, &optval, + sizeof(optval)) == -1) + wpa_printf(MSG_ERROR, "failed to set sndbuf for " + "sock=%d: %s", priv->sock, strerror(errno)); + } +#endif + eloop_register_read_sock(priv->sock, wpa_supplicant_ctrl_iface_receive, wpa_s, priv); wpa_msg_register_cb(wpa_supplicant_ctrl_iface_msg_cb);