Alexander Bluhm([email protected]) on 2017.11.16 14:05:43 +0100:
> On Wed, Nov 15, 2017 at 08:15:15PM +0100, Sebastian Benoit wrote:
> > Thanks, here is a diff on top of the last to check that.
> >
> > If you manage to set the default headerlen on non http protocols, it does
> > not catch that, but i dont want to add another variable for that corner
> > case.
>
> I think it is simpler to check when we parse the http options.
yes you are right, the type is already set at that point.
ok benno
> bluhm
>
> Index: parse.y
> ===================================================================
> RCS file: /data/mirror/openbsd/cvs/src/usr.sbin/relayd/parse.y,v
> retrieving revision 1.217
> diff -u -p -r1.217 parse.y
> --- parse.y 15 Nov 2017 19:03:26 -0000 1.217
> +++ parse.y 16 Nov 2017 12:57:46 -0000
> @@ -1055,6 +1055,11 @@ httpflags_l : httpflags comma httpflags_
> ;
>
> httpflags : HEADERLEN NUMBER {
> + if (proto->type != RELAY_PROTO_HTTP) {
> + yyerror("can set http options only for "
> + "http protocol");
> + YYERROR;
> + }
> if ($2 < 0 || $2 > RELAY_MAXHEADERLENGTH) {
> yyerror("invalid headerlen: %d", $2);
> YYERROR;
>