From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from gandalf.ozlabs.org (gandalf.ozlabs.org [150.107.74.76]) by passt.top (Postfix) with ESMTPS id 19EA45A0268 for ; Fri, 24 Feb 2023 05:03:31 +0100 (CET) Received: by gandalf.ozlabs.org (Postfix, from userid 1007) id 4PNGTT0nBmz4x7x; Fri, 24 Feb 2023 15:03:25 +1100 (AEDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gibson.dropbear.id.au; s=201602; t=1677211405; bh=DSDxi40noCOV/j4iKr3KnFpyuuQ6+YKoVZ5HCeOVvZk=; h=Date:From:To:Cc:Subject:References:In-Reply-To:From; b=EHP2VWhUsFkIxdUfUMcptKjDGLu6S6W4HMorIzEPQN+nTAE1gR9ZYPYyAOhunwvXT Nlm7M17hByXXgJQ8s9AFrfFjPShB2JsTIiB1IKyH+4Jx721+1iZH6YRuZen6pqsBGS fzgvO+C0k8H4bLJvYW6m0NoLHVzi/Gq2QiNRpX2w= Date: Fri, 24 Feb 2023 10:31:27 +1100 From: David Gibson To: Stefano Brivio Subject: Re: [PATCH] log: Send identifier string in log messages, openlog() won't work for us Message-ID: References: <20230223173555.3896768-1-sbrivio@redhat.com> MIME-Version: 1.0 Content-Type: multipart/signed; micalg=pgp-sha256; protocol="application/pgp-signature"; boundary="KcS+SYi6YxqlW9KK" Content-Disposition: inline In-Reply-To: <20230223173555.3896768-1-sbrivio@redhat.com> Message-ID-Hash: EH4XGIGEDBRXONJ6SE4J4YAT7KT52MHO X-Message-ID-Hash: EH4XGIGEDBRXONJ6SE4J4YAT7KT52MHO X-MailFrom: dgibson@gandalf.ozlabs.org X-Mailman-Rule-Misses: dmarc-mitigation; no-senders; approved; emergency; loop; banned-address; member-moderation; nonmember-moderation; administrivia; implicit-dest; max-recipients; max-size; news-moderation; no-subject; digests; suspicious-header CC: passt-dev@passt.top, Andrea Bolognani X-Mailman-Version: 3.3.8 Precedence: list List-Id: Development discussion and patches for passt Archived-At: Archived-At: List-Archive: List-Archive: List-Help: List-Owner: List-Post: List-Subscribe: List-Unsubscribe: --KcS+SYi6YxqlW9KK Content-Type: text/plain; charset=us-ascii Content-Disposition: inline Content-Transfer-Encoding: quoted-printable On Thu, Feb 23, 2023 at 06:35:55PM +0100, Stefano Brivio wrote: > openlog() can be used to set "ident" and have all the log messages > prefixed by it, but only if we call syslog() -- this is implemented > by C libraries. >=20 > We don't log messages with syslog(), though, as we have a custom > implementation to ensure we don't need dynamic memory allocation. > This means that it's perfectly useless to call openlog(), and that we > have to prefix every message we log by the identifier on our own. >=20 > Reported-by: Andrea Bolognani > Signed-off-by: Stefano Brivio Reviewed-by: David Gibson > --- > log.c | 12 +++++------- > 1 file changed, 5 insertions(+), 7 deletions(-) >=20 > diff --git a/log.c b/log.c > index f23e8ef..bfde6ce 100644 > --- a/log.c > +++ b/log.c > @@ -106,7 +106,7 @@ void trace_init(int enable) > } > =20 > /** > - * __openlog() - Non-optional openlog() wrapper, to allow custom vsyslog= () > + * __openlog() - Non-optional openlog() implementation, for custom vsysl= og() > * @ident: openlog() identity (program name) > * @option: openlog() options > * @facility: openlog() facility (LOG_DAEMON) > @@ -136,8 +136,6 @@ void __openlog(const char *ident, int option, int fac= ility) > log_mask |=3D facility; > strncpy(log_ident, ident, sizeof(log_ident) - 1); > log_opt =3D option; > - > - openlog(ident, option, facility); > } > =20 > /** > @@ -158,11 +156,11 @@ void __setlogmask(int mask) > */ > void passt_vsyslog(int pri, const char *format, va_list ap) > { > + int prefix_len, n; > char buf[BUFSIZ]; > - int n; > =20 > - /* Send without name and timestamp, the system logger should add them */ > - n =3D snprintf(buf, BUFSIZ, "<%i> ", pri); > + /* Send without timestamp, the system logger should add it */ > + n =3D prefix_len =3D snprintf(buf, BUFSIZ, "<%i> %s: ", pri, log_ident); > =20 > n +=3D vsnprintf(buf + n, BUFSIZ - n, format, ap); > =20 > @@ -170,7 +168,7 @@ void passt_vsyslog(int pri, const char *format, va_li= st ap) > n +=3D snprintf(buf + n, BUFSIZ - n, "\n"); > =20 > if (log_opt & LOG_PERROR) > - fprintf(stderr, "%s", buf + sizeof("<0>")); > + fprintf(stderr, "%s", buf + prefix_len); > =20 > if (send(log_sock, buf, n, 0) !=3D n) > fprintf(stderr, "Failed to send %i bytes to syslog\n", n); --=20 David Gibson | I'll have my music baroque, and my code david AT gibson.dropbear.id.au | minimalist, thank you. NOT _the_ _other_ | _way_ _around_! http://www.ozlabs.org/~dgibson --KcS+SYi6YxqlW9KK Content-Type: application/pgp-signature; name="signature.asc" -----BEGIN PGP SIGNATURE----- iQIzBAEBCAAdFiEEO+dNsU4E3yXUXRK2zQJF27ox2GcFAmP39zgACgkQzQJF27ox 2GfsOg/9HnTOyad9MXsuOCvyKQSqjB9TB5l3JsUzS1B5WE9vCogSKwv9HkAhDPoG TG58s6TMPyNlmcXHTUlcpyQ1ofpQSGMac1cJecK33faDWgcSJcczbv73NzPXQvXU lui38sVM+S6f6sXhFQ3k9iEjCGpCHHtwGMz4AJeYBTzegfPNoE3IcYOfSYhk/oMS CAv1HySm/deeR0sk/SsxBB4V5HyoyQuRlVDAcaxJBGFQ0iWInUgjE21bWL9yU2EF 0T0jz/h8THqovw548E/Msq6JIxhUr4ZdiQJBmO9b4WGMcHZrswt2O9lvT6tM6GXT 1dWHvKQvcM+KnwRVMrpMrvjb6zMfgJvvek4oJLftdJAg946b5LDaxJtWV68LOzLd aBIDfkWO2iyvT96hUsg6RZ+WqpEgZTHU/+tpB4TBJll+VWzdRUS9Nx4arq0sWUsz qfPDwVXFIHKIc3pyAMEyzM4K7DCiQl0VJG/yBbqWNcXUt1c4t4Duoyup7BfJx6UP 1+8qv9e6axVIXtl61H6/plFVSnS7oXEqT2qWnr4llv92E0nLFtNqc4A4xXaw/azv FJb+8xyWeWYPKYdS/TJuybKCIFLEss7YqcTSDcl5Duv0A6yb79d98nHG+eOqB/t0 czunouWsRvHsyEdmmREHET1XQOIM9ukYZp6Y8LGjtLvqZdfcatE= =glQD -----END PGP SIGNATURE----- --KcS+SYi6YxqlW9KK--