diff --git a/sys/dev/ic/bwfm.c b/sys/dev/ic/bwfm.c index b760453e9..4761d944c 100644 --- a/sys/dev/ic/bwfm.c +++ b/sys/dev/ic/bwfm.c @@ -1,4 +1,4 @@ -/* $OpenBSD: bwfm.c,v 1.110 2023/10/09 21:49:34 kettenis Exp $ */ +/* $OpenBSD: bwfm.c,v 1.111 2024/02/19 21:23:02 stsp Exp $ */ /* * Copyright (c) 2010-2016 Broadcom Corporation * Copyright (c) 2016,2017 Patrick Wildt @@ -451,6 +451,16 @@ bwfm_init(struct ifnet *ifp) return; } sc->sc_initialized = 1; + } else { + /* Update MAC in case the upper layers changed it. */ + IEEE80211_ADDR_COPY(ic->ic_myaddr, + ((struct arpcom *)ifp)->ac_enaddr); + if (bwfm_fwvar_var_set_data(sc, "cur_etheraddr", + ic->ic_myaddr, sizeof(ic->ic_myaddr))) { + printf("%s: could not write MAC address\n", + DEVNAME(sc)); + return; + } } /* Select default channel */ diff --git a/usr.sbin/smtpd/parse.y b/usr.sbin/smtpd/parse.y index 2e5297d27..a2c3a03a2 100644 --- a/usr.sbin/smtpd/parse.y +++ b/usr.sbin/smtpd/parse.y @@ -1,4 +1,4 @@ -/* $OpenBSD: parse.y,v 1.298 2024/02/03 15:50:00 op Exp $ */ +/* $OpenBSD: parse.y,v 1.299 2024/02/19 21:00:19 gilles Exp $ */ /* * Copyright (c) 2008 Gilles Chehade @@ -778,7 +778,7 @@ HELO STRING { YYERROR; } - if (!table_check_use(t, T_DYNAMIC|T_LIST, K_SOURCE)) { + if (!table_check_use(t, T_DYNAMIC|T_LIST|T_HASH, K_SOURCE)) { yyerror("table \"%s\" may not be used for source lookups", t->t_name); YYERROR; @@ -1102,7 +1102,7 @@ negation TAG REGEX tables { YYERROR; } - if (!table_check_use(t, T_DYNAMIC|T_LIST, K_STRING|K_CREDENTIALS)) { + if (!table_check_use(t, T_DYNAMIC|T_LIST|T_HASH, K_STRING|K_CREDENTIALS)) { yyerror("table \"%s\" may not be used for auth lookups", t->t_name); YYERROR; @@ -1137,7 +1137,7 @@ negation TAG REGEX tables { YYERROR; } - if (!table_check_use(t, T_DYNAMIC|T_LIST, K_MAILADDR)) { + if (!table_check_use(t, T_DYNAMIC|T_LIST|T_HASH, K_MAILADDR)) { yyerror("table \"%s\" may not be used for mail-from lookups", t->t_name); YYERROR; @@ -1172,7 +1172,7 @@ negation TAG REGEX tables { YYERROR; } - if (!table_check_use(t, T_DYNAMIC|T_LIST, K_MAILADDR)) { + if (!table_check_use(t, T_DYNAMIC|T_LIST|T_HASH, K_MAILADDR)) { yyerror("table \"%s\" may not be used for rcpt-to lookups", t->t_name); YYERROR; @@ -1330,7 +1330,7 @@ negation TAG REGEX tables { YYERROR; } - if (!table_check_use(t, T_DYNAMIC|T_LIST, K_STRING|K_CREDENTIALS)) { + if (!table_check_use(t, T_DYNAMIC|T_LIST, K_STRING|K_CREDENTIALS)) { yyerror("table \"%s\" may not be used for from lookups", t->t_name); YYERROR; @@ -1372,7 +1372,7 @@ negation TAG REGEX tables { YYERROR; } - if (!table_check_use(t, T_DYNAMIC|T_LIST, K_MAILADDR)) { + if (!table_check_use(t, T_DYNAMIC|T_LIST|T_HASH, K_MAILADDR)) { yyerror("table \"%s\" may not be used for from lookups", t->t_name); YYERROR; @@ -1469,7 +1469,7 @@ negation TAG REGEX tables { YYERROR; } - if (!table_check_use(t, T_DYNAMIC|T_LIST, K_MAILADDR)) { + if (!table_check_use(t, T_DYNAMIC|T_LIST|T_HASH, K_MAILADDR)) { yyerror("table \"%s\" may not be used for for lookups", t->t_name); YYERROR;