From: Rafael Sadowski Subject: relayd: set User-Agent for HTTP healthchecks To: tech@openbsd.org Cc: Joel Carnat , Kirill Bychkov Date: Thu, 26 Feb 2026 08:17:30 +0100 Joel Carnat notice that GoToSocial does not like it when we sent no User-Agent and returns an HTTP/418. This simple diff adds User-Agent to all HTTP/HTTPS checks. As I see it, we use "User Agents" in other places (ftp,acme-client...). When I look at all my (aws) load balancers and checks, I get a user agent from all of them. diff --git a/usr.sbin/relayd/parse.y b/usr.sbin/relayd/parse.y index fcdfb8e92e3..44ec18cbcfc 100644 --- a/usr.sbin/relayd/parse.y +++ b/usr.sbin/relayd/parse.y @@ -921,7 +921,7 @@ tablecheck : ICMP { table->conf.check = CHECK_ICMP; } YYERROR; } if (asprintf(&table->sendbuf, - "HEAD %s HTTP/1.%c\r\n%s\r\n", + "HEAD %s HTTP/1.%c\r\nUser-Agent: relayd\r\n%s\r\n", $2, strlen($3) ? '1' : '0', $3) == -1) fatal("asprintf"); free($2); @@ -936,7 +936,7 @@ tablecheck : ICMP { table->conf.check = CHECK_ICMP; } } table->conf.check = CHECK_HTTP_DIGEST; if (asprintf(&table->sendbuf, - "GET %s HTTP/1.%c\r\n%s\r\n", + "GET %s HTTP/1.%c\r\nUser-Agent: relayd\r\n%s\r\n", $2, strlen($3) ? '1' : '0', $3) == -1) fatal("asprintf"); free($2); diff --git a/usr.sbin/relayd/relayd.conf.5 b/usr.sbin/relayd/relayd.conf.5 index 5ae11c5ac01..943926a448a 100644 --- a/usr.sbin/relayd/relayd.conf.5 +++ b/usr.sbin/relayd/relayd.conf.5 @@ -279,6 +279,9 @@ If is specified, it is used as the .Dq Host: header to query a specific hostname at the target host. +A +.Dq User-Agent: relayd +header is always included in the request. To validate the HTTP return code, use this shell command: .Bd -literal -offset indent $ echo -n "HEAD HTTP/1.0\er\en\er\en" | \e