wsmouse(4): allow independent touchpad tap gesture configuration

2021-02-11 Thread RJ Johnson
Right now, there is a single master toggle for enabling all touchpad tap
gestures (mouse.tp.tapping). This patch splits this parameter into three
for independent control of one-finger, two-finger, and three-finger tap
gestures. This allows users to mix and match which gestures they prefer
for the ideal touchpad experience.

Index: sbin/wsconsctl/mousecfg.c
===
RCS file: /cvs/src/sbin/wsconsctl/mousecfg.c,v
retrieving revision 1.7
diff -u -p -u -p -r1.7 mousecfg.c
--- sbin/wsconsctl/mousecfg.c   2 Apr 2020 17:17:04 -   1.7
+++ sbin/wsconsctl/mousecfg.c   9 Feb 2021 00:17:14 -
@@ -40,7 +40,7 @@
 #define TP_FILTER_FIRSTWSMOUSECFG_DX_MAX
 #define TP_FILTER_LAST WSMOUSECFG_SMOOTHING
 #define TP_FEATURES_FIRST  WSMOUSECFG_SOFTBUTTONS
-#define TP_FEATURES_LAST   WSMOUSECFG_TAPPING
+#define TP_FEATURES_LAST   WSMOUSECFG_THREEFINGERTAPPING
 #define TP_SETUP_FIRST WSMOUSECFG_LEFT_EDGE
 #define TP_SETUP_LAST  WSMOUSECFG_TAP_LOCKTIME
 #define LOG_FIRST  WSMOUSECFG_LOG_INPUT
@@ -71,8 +71,10 @@ static const int touchpad_types[] = {

 struct wsmouse_parameters cfg_tapping = {
(struct wsmouse_param[]) {
-   { WSMOUSECFG_TAPPING, 0 }, },
-   1
+   { WSMOUSECFG_ONEFINGERTAPPING, 0 },
+   { WSMOUSECFG_TWOFINGERTAPPING, 0 },
+   { WSMOUSECFG_THREEFINGERTAPPING, 0 }, },
+   3
 };

 struct wsmouse_parameters cfg_scaling = {
Index: share/man/man4/wsmouse.4
===
RCS file: /cvs/src/share/man/man4/wsmouse.4,v
retrieving revision 1.20
diff -u -p -u -p -r1.20 wsmouse.4
--- share/man/man4/wsmouse.44 Feb 2018 20:29:59 -   1.20
+++ share/man/man4/wsmouse.49 Feb 2021 00:17:14 -
@@ -26,7 +26,7 @@
 .\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
 .\" SUCH DAMAGE.
 .\"
-.Dd $Mdocdate: February 4 2018 $
+.Dd $Mdocdate: February 8 2021 $
 .Dt WSMOUSE 4
 .Os
 .Sh NAME
@@ -87,14 +87,22 @@ is omitted, commands apply to
 .Pa /dev/wsmouse0 .
 .Bl -tag -width Ds
 .It Cm mouse.tp.tapping
-Setting this parameter to a non-zero value enables tap gestures.
+This list of three parameters sets the enabled tap gestures, in the order:
+.Bd -literal -offset indent
+.Sm off
+.Ar one-finger , two-finger , three-finger
+.Sm on
+.Ed
+.Pp
+Setting a parameter to a non-zero value enables that tap gesture.
 Contacts on the touchpad that are immediately released again
-trigger click events.
+trigger click events only if the corresponding tap gesture is enabled.
 One-finger, two-finger, and three-finger taps generate left-button,
 right-button, and middle-button clicks, respectively.
 If, within a short time interval, a second touch follows a one-finger
 tap, the button-up event is not issued until that touch ends
 .Pq Dq tap-and-drag .
+This requires the one-finger tap gesture to be enabled.
 .It Cm mouse.tp.scaling
 The value is a scale coefficient that is applied to the relative
 coordinates.
Index: sys/dev/wscons/wsconsio.h
===
RCS file: /cvs/src/sys/dev/wscons/wsconsio.h,v
retrieving revision 1.95
diff -u -p -u -p -r1.95 wsconsio.h
--- sys/dev/wscons/wsconsio.h   1 Oct 2020 17:28:14 -   1.95
+++ sys/dev/wscons/wsconsio.h   9 Feb 2021 00:17:17 -
@@ -319,7 +319,9 @@ enum wsmousecfg {
WSMOUSECFG_SWAPSIDES,   /* invert soft-button/scroll areas */
WSMOUSECFG_DISABLE, /* disable all output except for
   clicks in the top-button area */
-   WSMOUSECFG_TAPPING, /* enable tapping */
+   WSMOUSECFG_ONEFINGERTAPPING,/* enable one-finger tapping */
+   WSMOUSECFG_TWOFINGERTAPPING,/* enable two-finger tapping */
+   WSMOUSECFG_THREEFINGERTAPPING,  /* enable three-finger tapping */

/*
 * Touchpad options
@@ -345,7 +347,7 @@ enum wsmousecfg {
WSMOUSECFG_LOG_INPUT = 256,
WSMOUSECFG_LOG_EVENTS,
 };
-#define WSMOUSECFG_MAX 39  /* max size of param array per ioctl */
+#define WSMOUSECFG_MAX 41  /* max size of param array per ioctl */

 struct wsmouse_param {
enum wsmousecfg key;
Index: sys/dev/wscons/wstpad.c
===
RCS file: /cvs/src/sys/dev/wscons/wstpad.c,v
retrieving revision 1.26
diff -u -p -u -p -r1.26 wstpad.c
--- sys/dev/wscons/wstpad.c 13 Sep 2020 10:05:46 -  1.26
+++ sys/dev/wscons/wstpad.c 9 Feb 2021 00:17:17 -
@@ -139,18 +139,19 @@ struct tpad_touch {
 /*
  * wstpad.features
  */
-#define WSTPAD_SOFTBUTTONS (1 << 0)
-#define WSTPAD_SOFTMBTN(1 << 1)
-#define WSTPAD_TOPBUTTONS  (1 << 2)
-#define WSTPAD_TWOFINGERSCROLL (1 << 3)
-#define WSTPAD_EDGESCROLL  (1 << 4)
-#define WSTPAD_HORIZSCROLL (1 << 5)
-#define WSTPAD_SWAPSIDES   (1 <

Re: /bin/cp: overwrite symlink with file pointed to by symlink

2021-02-11 Thread Christopher Zimmermann



Hi Quentin,

Thank you for having a look.
I know I'm very late, but I still like your patch. So ok chrisz@ if you 
want to commit it.


Christopher


On Fri, Nov 01, 2019 at 08:46:51PM +0100, Quentin Rameau wrote:

If you're interested in adapting to POSIX, here's a proposition patch:

Index: bin/cp//cp.1
===
RCS file: /var/cvs/src/bin/cp/cp.1,v
retrieving revision 1.40
diff -u -r1.40 cp.1
--- bin/cp//cp.128 Jan 2019 18:58:42 -  1.40
+++ bin/cp//cp.11 Nov 2019 19:41:26 -
@@ -79,9 +79,8 @@
Same as
.Fl RpP .
.It Fl f
-For each existing destination pathname, remove it and
-create a new file, without prompting for confirmation,
-regardless of its permissions.
+For each existing destination pathname which cannot be opened, remove
+it and create a new file, without prompting for confirmation.
The
.Fl f
option overrides any previous
Index: bin/cp//utils.c
===
RCS file: /var/cvs/src/bin/cp/utils.c,v
retrieving revision 1.47
diff -u -r1.47 utils.c
--- bin/cp//utils.c 28 Jan 2019 18:58:42 -  1.47
+++ bin/cp//utils.c 1 Nov 2019 19:25:02 -
@@ -55,7 +55,7 @@
static char *buf;
static char *zeroes;
struct stat to_stat, *fs;
-   int from_fd, rcount, rval, to_fd, wcount;
+   int from_fd, rcount, rval, to_fd, wcount, create = 1;
#ifdef VM_AND_BUFFER_CACHE_SYNCHRONIZED
char *p;
#endif
@@ -79,26 +79,24 @@
fs = entp->fts_statp;

/*
-* In -f (force) mode, we always unlink the destination first
-* if it exists.  Note that -i and -f are mutually exclusive.
-*/
-   if (exists && fflag)
-   (void)unlink(to.p_path);
-
-   /*
 * If the file DNE, set the mode to be the from file, minus setuid
 * bits, modified by the umask; arguably wrong, but it makes copying
 * executables work right and it's been that way forever.  (The
 * other choice is 666 or'ed with the execute bits on the from file
 * modified by the umask.)
 */
-   if (exists && !fflag) {
-   if (!copy_overwrite()) {
+   if (exists) {
+   /* Note that -i and -f are mutually exclusive. */
+   if (!fflag && !copy_overwrite()) {
(void)close(from_fd);
return 2;
}
to_fd = open(to.p_path, O_WRONLY | O_TRUNC, 0);
-   } else
+   if (to_fd != -1 || fflag && unlink(to.p_path) == -1)
+   create = 0;
+   }
+
+   if (create)
to_fd = open(to.p_path, O_WRONLY | O_TRUNC | O_CREAT,
fs->st_mode & ~(S_ISTXT | S_ISUID | S_ISGID));




--
http://gmerlin.de
OpenPGP: http://gmerlin.de/christopher.pub
CB07 DA40 B0B6 571D 35E2  0DEF 87E2 92A7 13E5 DEE1



Re: random manual pages

2021-02-11 Thread Ross L Richardson
On Thu, Feb 11, 2021 at 10:40:07PM -0700, Theo de Raadt wrote:
>[...]
> +original development, is underspecified, and should not be relied up to

"relied up to" should probably be "relied upon to" (twice).

Ross



random manual pages

2021-02-11 Thread Theo de Raadt
Reading a recent junk-thread, I realized the algorithms for rand
and random have changed numerous times since the late 80's.

As such you cannot trust that a seed given 20 years ago, produces the
same sequence today.

I did a rough study of the commits to our versions.  Other operating
systems changed their algorithms at different times.  I think rand and
random algorithm changed about 5 times (combined).  But wait there is
MORE!  These functions mix "long" and "int", and rely upon wraparound,
so 32-bit vs 64-bit behaviour occur.

I'm wondering if the following wording will disuade people from playing
this stupid deterministic game, or arguing that these specific functions
serve such a purpose.  I suppose the two lessons are:
 - if you need determinism, write your own.
 - do not rely upon an external function which will make your seed
   produce a different result approximately every 8 years.

People keep talking about the value of determinism, and in particular for
these specific function names, so I'm hoping to put the argument to rest.

I stopped short by avoiding the phrase "undefined behaviour".

Index: stdlib/rand.3
===
RCS file: /cvs/src/lib/libc/stdlib/rand.3,v
retrieving revision 1.19
diff -u -p -u -r1.19 rand.3
--- stdlib/rand.3   9 Dec 2014 21:55:39 -   1.19
+++ stdlib/rand.3   12 Feb 2021 05:36:52 -
@@ -78,6 +78,9 @@ can be substituted for
 then subsequent
 .Fn rand
 calls will return results using the deterministic algorithm.
+The deterministic sequence algorithm changed a number of times since
+original development, is underspecified, and should not be relied up to
+remain consistant between platforms and over time.
 .Pp
 The
 .Fn rand
Index: stdlib/random.3
===
RCS file: /cvs/src/lib/libc/stdlib/random.3,v
retrieving revision 1.28
diff -u -p -u -r1.28 random.3
--- stdlib/random.3 9 Dec 2014 21:55:39 -   1.28
+++ stdlib/random.3 12 Feb 2021 05:36:52 -
@@ -96,6 +96,9 @@ a default table of size 31 long integers
 numbers in the range from 0 to (2**31)\-1.
 The period of this random number generator is very large, approximately
 16*((2**31)\-1), but the results are a deterministic sequence from the seed.
+The deterministic sequence algorithm changed a number of times since
+original development, is underspecified, and should not be relied up to
+remain consistant between platforms and over time.
 .Pp
 The
 .Fn initstate



Re: route sockets: simplify route_attach() error path

2021-02-11 Thread Alexander Bluhm
On Wed, Feb 10, 2021 at 10:51:52PM +0300, Vitaliy Makkoveev wrote:
> Do soreserve() before `rop' allocation. It doesn't require protocol
> control block be attached to socket. Also we always call `pr_attach' in
> thread context so we always have `curproc'. 

While I found one pr_attach() from TCP input context, route_attach()
is only called from process context.

> ok?

OK bluhm@

> Index: sys/net/rtsock.c
> ===
> RCS file: /cvs/src/sys/net/rtsock.c,v
> retrieving revision 1.304
> diff -u -p -r1.304 rtsock.c
> --- sys/net/rtsock.c  7 Nov 2020 09:51:40 -   1.304
> +++ sys/net/rtsock.c  10 Feb 2021 19:43:52 -
> @@ -301,6 +301,9 @@ route_attach(struct socket *so, int prot
>   struct rtpcb*rop;
>   int  error;
>  
> + error = soreserve(so, ROUTESNDQ, ROUTERCVQ);
> + if (error)
> + return (error);
>   /*
>* use the rawcb but allocate a rtpcb, this
>* code does not care about the additional fields
> @@ -311,15 +314,6 @@ route_attach(struct socket *so, int prot
>   /* Init the timeout structure */
>   timeout_set(&rop->rop_timeout, rtm_senddesync_timer, so);
>   refcnt_init(&rop->rop_refcnt);
> -
> - if (curproc == NULL)
> - error = EACCES;
> - else
> - error = soreserve(so, ROUTESNDQ, ROUTERCVQ);
> - if (error) {
> - pool_put(&rtpcb_pool, rop);
> - return (error);
> - }
>  
>   rop->rop_socket = so;
>   rop->rop_proto = proto;



Re: ssl(8) tweaks, mostly for ecdsa

2021-02-11 Thread Stuart Henderson
On 2021/02/11 22:22, Theo Buehler wrote:
> On Thu, Feb 11, 2021 at 08:55:55PM +, Stuart Henderson wrote:
> > acme-client works with ecdsa certificates, but if there's no existing
> > key, it has no way to tell whether you want ec or rsa so it can't
> > actually generate a new ec key. (even if it did, acme-client's default
> > secp384r1 isn't accepted by buypass).
> > 
> > here are a few changes for ssl(8) that i think are helpful.
> > it uses the single command that generates params and a key together,
> > which is the only step needed if you're using it with acme-client,
> > and then generates a csr separately (as is already done for rsa).
> > 
> > i've included some small changes for rsa as well (not everyone wants
> > such a long key as acme-client uses by default, especially if they
> > are handling high connection rates).
> > 
> > any comments?
> 
> This makes sense to me. I like the streamlining of the ECDSA case except
> for one detail: the eccert.key is no longer saved into /etc/ssl/private
> (probably to avoid line wraps). It is assumed to be there in the last
> command before SEE ALSO.  The intent may be obvious to a user who has
> read the RSA section but it may lead to errors for those who didn't.
> 
> I don't remember the rules for SEE ALSO. Should acme-client have an Xr
> there?

Both good points. I think SEE ALSOs in both directions probably make
sense. (There is a remaining point that acme-client suggests it can
generate an ec key itself, and has some code for this, but I don't
see how it can work - I am ignoring that for now ;)


Index: usr.sbin/acme-client/acme-client.1
===
RCS file: /cvs/src/usr.sbin/acme-client/acme-client.1,v
retrieving revision 1.39
diff -u -p -r1.39 acme-client.1
--- usr.sbin/acme-client/acme-client.1  2 Jan 2021 19:04:21 -   1.39
+++ usr.sbin/acme-client/acme-client.1  11 Feb 2021 21:36:04 -
@@ -130,7 +130,8 @@ is reloaded:
 .Sh SEE ALSO
 .Xr openssl 1 ,
 .Xr acme-client.conf 5 ,
-.Xr httpd.conf 5
+.Xr httpd.conf 5 ,
+.Xr ssl 8
 .Sh STANDARDS
 .Rs
 .%A R. Barnes
Index: share/man/man8/ssl.8
===
RCS file: /cvs/src/share/man/man8/ssl.8,v
retrieving revision 1.68
diff -u -p -r1.68 ssl.8
--- share/man/man8/ssl.810 May 2019 12:41:49 -  1.68
+++ share/man/man8/ssl.811 Feb 2021 21:36:04 -
@@ -64,6 +64,7 @@ key file is kept secure.
 To support HTTPS transactions in
 .Xr httpd 8
 you will need to generate an RSA certificate.
+Start by creating a private key of the desired length:
 .Bd -literal -offset indent
 # openssl genrsa -out /etc/ssl/private/server.key 4096
 .Ed
@@ -74,8 +75,13 @@ have to type in when starting servers
 # openssl genrsa -aes256 -out /etc/ssl/private/server.key 4096
 .Ed
 .Pp
-The next step is to generate a Certificate Signing Request (CSR) which is
-used to get a Certificate Authority (CA) to sign your certificate.
+If you are only generating a private key to use with
+.Xr acme-client 1
+(for example, with a non-default key length)
+you may stop here.
+.Pp
+Otherwise, the next step is to generate a Certificate Signing Request (CSR)
+which is used to get a Certificate Authority (CA) to sign your certificate.
 To do this use the command:
 .Bd -literal -offset indent
 # openssl req -new -key /etc/ssl/private/server.key \e
@@ -123,25 +129,25 @@ with the certificate signed by your Cert
 restarting
 .Xr httpd 8 .
 .Sh GENERATING ECDSA SERVER CERTIFICATES
-First, generate parameters for ECDSA keys.
+First, generate a private ECDSA key.
 The following command will use a NIST/SECG curve over a 384-bit
 prime field:
 .Bd -literal -offset indent
-# openssl ecparam -out ec-secp384r1.pem -name secp384r1
+# openssl ecparam -name secp384r1 -genkey \e
+  -noout -out /etc/ssl/private/eccert.key
 .Ed
 .Pp
-Once you have the ECDSA parameters generated, you can generate a
-CSR and unencrypted private key using the command:
-.Bd -literal -offset indent
-# openssl req -nodes -newkey ec:ec-secp384r1.pem \e
-  -keyout /etc/ssl/private/eccert.key -new \e
-  -out /etc/ssl/private/eccert.csr
-.Ed
+Note that some Certificate Authorities will only issue certificates for
+keys generated using prime256v1 parameters.
 .Pp
-To generate an encrypted private key, you would use:
+If you are only generating a private key to use with
+.Xr acme-client 1 ,
+you may stop here.
+Otherwise, the next step is to generate a Certificate Signing Request (CSR)
+which is used to get a Certificate Authority (CA) to sign your certificate.
+To do this use the command:
 .Bd -literal -offset indent
-# openssl req -newkey ec:ec-secp384r1.pem \e
-  -keyout /etc/ssl/private/eccert.key -new \e
+# openssl req -key /etc/ssl/private/eccert.key -new \e
   -out /etc/ssl/private/eccert.csr
 .Ed
 .Pp
@@ -157,6 +163,7 @@ You can also sign the key yourself, usin
   -out /etc/ssl/eccert.crt
 .Ed
 .Sh SEE ALSO
+.Xr acme-client 1 ,
 .Xr openssl 1 ,
 .Xr s

Re: ssl(8) tweaks, mostly for ecdsa

2021-02-11 Thread Theo Buehler
On Thu, Feb 11, 2021 at 08:55:55PM +, Stuart Henderson wrote:
> acme-client works with ecdsa certificates, but if there's no existing
> key, it has no way to tell whether you want ec or rsa so it can't
> actually generate a new ec key. (even if it did, acme-client's default
> secp384r1 isn't accepted by buypass).
> 
> here are a few changes for ssl(8) that i think are helpful.
> it uses the single command that generates params and a key together,
> which is the only step needed if you're using it with acme-client,
> and then generates a csr separately (as is already done for rsa).
> 
> i've included some small changes for rsa as well (not everyone wants
> such a long key as acme-client uses by default, especially if they
> are handling high connection rates).
> 
> any comments?

This makes sense to me. I like the streamlining of the ECDSA case except
for one detail: the eccert.key is no longer saved into /etc/ssl/private
(probably to avoid line wraps). It is assumed to be there in the last
command before SEE ALSO.  The intent may be obvious to a user who has
read the RSA section but it may lead to errors for those who didn't.

I don't remember the rules for SEE ALSO. Should acme-client have an Xr
there?



ssl(8) tweaks, mostly for ecdsa

2021-02-11 Thread Stuart Henderson
acme-client works with ecdsa certificates, but if there's no existing
key, it has no way to tell whether you want ec or rsa so it can't
actually generate a new ec key. (even if it did, acme-client's default
secp384r1 isn't accepted by buypass).

here are a few changes for ssl(8) that i think are helpful.
it uses the single command that generates params and a key together,
which is the only step needed if you're using it with acme-client,
and then generates a csr separately (as is already done for rsa).

i've included some small changes for rsa as well (not everyone wants
such a long key as acme-client uses by default, especially if they
are handling high connection rates).

any comments?

ok?

Index: ssl.8
===
RCS file: /cvs/src/share/man/man8/ssl.8,v
retrieving revision 1.68
diff -u -p -r1.68 ssl.8
--- ssl.8   10 May 2019 12:41:49 -  1.68
+++ ssl.8   11 Feb 2021 20:48:27 -
@@ -64,6 +64,7 @@ key file is kept secure.
 To support HTTPS transactions in
 .Xr httpd 8
 you will need to generate an RSA certificate.
+Start by creating a private key of the desired length:
 .Bd -literal -offset indent
 # openssl genrsa -out /etc/ssl/private/server.key 4096
 .Ed
@@ -74,8 +75,13 @@ have to type in when starting servers
 # openssl genrsa -aes256 -out /etc/ssl/private/server.key 4096
 .Ed
 .Pp
-The next step is to generate a Certificate Signing Request (CSR) which is
-used to get a Certificate Authority (CA) to sign your certificate.
+If you are only generating a private key to use with
+.Xr acme-client 1
+(for example, with a non-default key length)
+you may stop here.
+.Pp
+Otherwise, the next step is to generate a Certificate Signing Request (CSR)
+which is used to get a Certificate Authority (CA) to sign your certificate.
 To do this use the command:
 .Bd -literal -offset indent
 # openssl req -new -key /etc/ssl/private/server.key \e
@@ -123,26 +129,24 @@ with the certificate signed by your Cert
 restarting
 .Xr httpd 8 .
 .Sh GENERATING ECDSA SERVER CERTIFICATES
-First, generate parameters for ECDSA keys.
+First, generate a private ECDSA key.
 The following command will use a NIST/SECG curve over a 384-bit
 prime field:
 .Bd -literal -offset indent
-# openssl ecparam -out ec-secp384r1.pem -name secp384r1
+# openssl ecparam -name secp384r1 -genkey -noout -out eccert.key
 .Ed
 .Pp
-Once you have the ECDSA parameters generated, you can generate a
-CSR and unencrypted private key using the command:
-.Bd -literal -offset indent
-# openssl req -nodes -newkey ec:ec-secp384r1.pem \e
-  -keyout /etc/ssl/private/eccert.key -new \e
-  -out /etc/ssl/private/eccert.csr
-.Ed
+Note that some Certificate Authorities will only issue certificates for
+keys generated using prime256v1 parameters.
 .Pp
-To generate an encrypted private key, you would use:
+If you are only generating a private key to use with
+.Xr acme-client 1 ,
+you may stop here.
+Otherwise, the next step is to generate a Certificate Signing Request (CSR)
+which is used to get a Certificate Authority (CA) to sign your certificate.
+To do this use the command:
 .Bd -literal -offset indent
-# openssl req -newkey ec:ec-secp384r1.pem \e
-  -keyout /etc/ssl/private/eccert.key -new \e
-  -out /etc/ssl/private/eccert.csr
+# openssl req -key eccert.key -new -out /etc/ssl/private/eccert.csr
 .Ed
 .Pp
 This



Re: Add missing break statement on if_rge.c

2021-02-11 Thread Kevin Lo
On Thu, Feb 11, 2021 at 12:24:37PM +, Ricardo Mestre wrote:
> 
> Hi,
> 
> Add missing break statement. OK?

ok kevlo@.  stsp@ has informed me earlier and has the same diff,   
I think he will be committing it later today.

> CID 1501710
> 
> Index: if_rge.c
> ===
> RCS file: /cvs/src/sys/dev/pci/if_rge.c,v
> retrieving revision 1.11
> diff -u -p -c -u -r1.11 if_rge.c
> --- if_rge.c  24 Dec 2020 06:34:03 -  1.11
> +++ if_rge.c  11 Feb 2021 12:21:33 -
> @@ -311,6 +311,7 @@ rge_activate(struct device *self, int ac
>  #ifndef SMALL_KERNEL
>   rge_wol_power(sc);
>  #endif
> + break;
>   default:
>   rv = config_activate_children(self, act);
>   break;



Re: apu2e4

2021-02-11 Thread Marcus Glocker
My boot.conf was renamed to boot.conf.off in the PXE server.  Idiot.
Thanks tb@ for the hint :-)

Sorry for the noise.

On Thu, Feb 11, 2021 at 04:07:02PM +0100, Marcus Glocker wrote:

> Is there anyone out there using an apu2e4?
> 
> I just received an APU2E4 / GX-412TC 4GB
> 
> https://www.pcengines.ch/apu2e4.htm
> 
> I can't boot any recent kernel on it, not through USB nor through
> PXEBOOT.  I tried amd64/i386, snapshot, 6.8, 6.6, and all cause the apu
> to reboot after the entry point message.  E.g.:
> 
> net0: 00:0d:b9:5a:13:00 using i210-2 on PCI01:00.0 (open)
>   [Link:up, TX:0 TXE:0 RX:0 RXE:0]
> Configuring (net0 00:0d:b9:5a:13:00).. ok
> net0: 192.168.1.26/255.255.255.0 gw 192.168.1.1
> Next server: 192.168.1.1
> Filename: pxeboot
> tftp://192.168.1.1/pxeboot... ok
> pxeboot : 101284 bytes [PXE-NBP]
> probing: pc0 com0 com1 pxe![2.1] mem[624K 62M 3518M 116K 496M a20=on]
> disk:
> net: mac 00:0d:b9:5a:13:00, ip 192.168.1.26, server 192.168.1.1
> >> OpenBSD/amd64 PXEBOOT 3.53
> boot>
> booting tftp:/bsd: 3814093+1586176+3882456+0+704512=0x988360
> entry point at 0x81001000
> 
> 
> 
> Funnily on the mSATA disk which I had spare, an old 5.3-i386 was still
> installed which boots fine.



apu2e4

2021-02-11 Thread Marcus Glocker
Is there anyone out there using an apu2e4?

I just received an APU2E4 / GX-412TC 4GB

https://www.pcengines.ch/apu2e4.htm

I can't boot any recent kernel on it, not through USB nor through
PXEBOOT.  I tried amd64/i386, snapshot, 6.8, 6.6, and all cause the apu
to reboot after the entry point message.  E.g.:

net0: 00:0d:b9:5a:13:00 using i210-2 on PCI01:00.0 (open)
  [Link:up, TX:0 TXE:0 RX:0 RXE:0]
Configuring (net0 00:0d:b9:5a:13:00).. ok
net0: 192.168.1.26/255.255.255.0 gw 192.168.1.1
Next server: 192.168.1.1
Filename: pxeboot
tftp://192.168.1.1/pxeboot... ok
pxeboot : 101284 bytes [PXE-NBP]
probing: pc0 com0 com1 pxe![2.1] mem[624K 62M 3518M 116K 496M a20=on]
disk:
net: mac 00:0d:b9:5a:13:00, ip 192.168.1.26, server 192.168.1.1
>> OpenBSD/amd64 PXEBOOT 3.53
boot>
booting tftp:/bsd: 3814093+1586176+3882456+0+704512=0x988360
entry point at 0x81001000



Funnily on the mSATA disk which I had spare, an old 5.3-i386 was still
installed which boots fine.



Re: Add missing break statement on if_rge.c

2021-02-11 Thread Patrick Wildt
Am Thu, Feb 11, 2021 at 12:24:37PM + schrieb Ricardo Mestre:
> Hi,
> 
> Add missing break statement. OK?

makes sense to me, ok patrick@

> CID 1501710
> 
> Index: if_rge.c
> ===
> RCS file: /cvs/src/sys/dev/pci/if_rge.c,v
> retrieving revision 1.11
> diff -u -p -c -u -r1.11 if_rge.c
> --- if_rge.c  24 Dec 2020 06:34:03 -  1.11
> +++ if_rge.c  11 Feb 2021 12:21:33 -
> @@ -311,6 +311,7 @@ rge_activate(struct device *self, int ac
>  #ifndef SMALL_KERNEL
>   rge_wol_power(sc);
>  #endif
> + break;
>   default:
>   rv = config_activate_children(self, act);
>   break;
> 



Add missing break statement on if_rge.c

2021-02-11 Thread Ricardo Mestre
Hi,

Add missing break statement. OK?

CID 1501710

Index: if_rge.c
===
RCS file: /cvs/src/sys/dev/pci/if_rge.c,v
retrieving revision 1.11
diff -u -p -c -u -r1.11 if_rge.c
--- if_rge.c24 Dec 2020 06:34:03 -  1.11
+++ if_rge.c11 Feb 2021 12:21:33 -
@@ -311,6 +311,7 @@ rge_activate(struct device *self, int ac
 #ifndef SMALL_KERNEL
rge_wol_power(sc);
 #endif
+   break;
default:
rv = config_activate_children(self, act);
break;



Re: Uninitialized var in dev/pv/vmt.c

2021-02-11 Thread Jonathan Matthew
On Thu, Feb 11, 2021 at 11:41:24AM +, Ricardo Mestre wrote:
> Hi,
> 
> Uninitialized var and it's used in a condition != NULL a little bit 
> afterwards.
> CID 1501713
> 
> OK?

yes, ok jmatthew@

> 
> Index: vmt.c
> ===
> RCS file: /cvs/src/sys/dev/pv/vmt.c,v
> retrieving revision 1.22
> diff -u -p -u -r1.22 vmt.c
> --- vmt.c 15 Jan 2021 06:14:41 -  1.22
> +++ vmt.c 11 Feb 2021 11:35:41 -
> @@ -1289,7 +1289,7 @@ vmt_xdr_nic_info(char *data)
>   struct ifnet *iface;
>   struct vm_nicinfo_nic_list nl;
>   size_t total, nictotal;
> - char *listdata;
> + char *listdata = NULL;
>   int nics;
>  
>   NET_ASSERT_LOCKED();



Uninitialized var in dev/pv/vmt.c

2021-02-11 Thread Ricardo Mestre
Hi,

Uninitialized var and it's used in a condition != NULL a little bit afterwards.
CID 1501713

OK?

Index: vmt.c
===
RCS file: /cvs/src/sys/dev/pv/vmt.c,v
retrieving revision 1.22
diff -u -p -u -r1.22 vmt.c
--- vmt.c   15 Jan 2021 06:14:41 -  1.22
+++ vmt.c   11 Feb 2021 11:35:41 -
@@ -1289,7 +1289,7 @@ vmt_xdr_nic_info(char *data)
struct ifnet *iface;
struct vm_nicinfo_nic_list nl;
size_t total, nictotal;
-   char *listdata;
+   char *listdata = NULL;
int nics;
 
NET_ASSERT_LOCKED();



Re: isakmpd link dynamically

2021-02-11 Thread Patrick Wildt
Am Thu, Feb 11, 2021 at 11:29:58AM +0100 schrieb Alexander Bluhm:
> - recommit in /usr/src/usr.sbin -> we loose history

I know no one cares about git, but if the move was committed in a
"single cvs commit", git would understand it's simply a move of files.
So yeah, cvs wouldn't cope, but git would.



Re: Swapped arguments on stoeplitz_ip{4,6}port

2021-02-11 Thread Ricardo Mestre
forget about it, patrick@ was way faster and it's already commited :)



Re: Swapped arguments on stoeplitz_ip{4,6}port

2021-02-11 Thread Patrick Wildt
Already committed as of 7 minutes ago, heh!

Am Thu, Feb 11, 2021 at 10:48:16AM + schrieb Ricardo Mestre:
> Hi,
> 
> It seems this got the args swapped as described in CID 1501717.
> 
> stoeplitz_ip6port being a macro for stoeplitz_hash_ip6port and the arguments
> placed as shown below. Similarly stoeplitz_ip4port also has the same problem
> most likely due to copypasto.
> 
> Comments? OK?
> 
> 173 uint16_t
> 174 stoeplitz_hash_ip6port(const struct stoeplitz_cache *scache,
> 175 const struct in6_addr *faddr6, const struct in6_addr *laddr6,
> 176 in_port_t fport, in_port_t lport)
> 
> Index: netinet/in_pcb.c
> ===
> RCS file: /cvs/src/sys/netinet/in_pcb.c,v
> retrieving revision 1.253
> diff -u -p -u -r1.253 in_pcb.c
> --- netinet/in_pcb.c  25 Jan 2021 03:40:46 -  1.253
> +++ netinet/in_pcb.c  11 Feb 2021 10:34:50 -
> @@ -522,8 +522,8 @@ in_pcbconnect(struct inpcb *inp, struct 
>   inp->inp_fport = sin->sin_port;
>   in_pcbrehash(inp);
>  #if NSTOEPLITZ > 0
> - inp->inp_flowid = stoeplitz_ip4port(inp->inp_laddr.s_addr,
> - inp->inp_faddr.s_addr, inp->inp_lport, inp->inp_fport);
> + inp->inp_flowid = stoeplitz_ip4port(inp->inp_faddr.s_addr,
> + inp->inp_laddr.s_addr, inp->inp_fport, inp->inp_lport);
>  #endif
>  #ifdef IPSEC
>   {
> Index: netinet6/in6_pcb.c
> ===
> RCS file: /cvs/src/sys/netinet6/in6_pcb.c,v
> retrieving revision 1.111
> diff -u -p -u -r1.111 in6_pcb.c
> --- netinet6/in6_pcb.c25 Jan 2021 03:40:47 -  1.111
> +++ netinet6/in6_pcb.c11 Feb 2021 10:34:50 -
> @@ -303,8 +303,8 @@ in6_pcbconnect(struct inpcb *inp, struct
>   inp->inp_flowinfo |=
>   (htonl(ip6_randomflowlabel()) & IPV6_FLOWLABEL_MASK);
>  #if NSTOEPLITZ > 0
> - inp->inp_flowid = stoeplitz_ip6port(&inp->inp_laddr6,
> - &inp->inp_faddr6, inp->inp_lport, inp->inp_fport);
> + inp->inp_flowid = stoeplitz_ip6port(&inp->inp_faddr6,
> + &inp->inp_laddr6, inp->inp_fport, inp->inp_lport);
>  #endif
>   in_pcbrehash(inp);
>   return (0);
> 



Swapped arguments on stoeplitz_ip{4,6}port

2021-02-11 Thread Ricardo Mestre
Hi,

It seems this got the args swapped as described in CID 1501717.

stoeplitz_ip6port being a macro for stoeplitz_hash_ip6port and the arguments
placed as shown below. Similarly stoeplitz_ip4port also has the same problem
most likely due to copypasto.

Comments? OK?

173 uint16_t
174 stoeplitz_hash_ip6port(const struct stoeplitz_cache *scache,
175 const struct in6_addr *faddr6, const struct in6_addr *laddr6,
176 in_port_t fport, in_port_t lport)

Index: netinet/in_pcb.c
===
RCS file: /cvs/src/sys/netinet/in_pcb.c,v
retrieving revision 1.253
diff -u -p -u -r1.253 in_pcb.c
--- netinet/in_pcb.c25 Jan 2021 03:40:46 -  1.253
+++ netinet/in_pcb.c11 Feb 2021 10:34:50 -
@@ -522,8 +522,8 @@ in_pcbconnect(struct inpcb *inp, struct 
inp->inp_fport = sin->sin_port;
in_pcbrehash(inp);
 #if NSTOEPLITZ > 0
-   inp->inp_flowid = stoeplitz_ip4port(inp->inp_laddr.s_addr,
-   inp->inp_faddr.s_addr, inp->inp_lport, inp->inp_fport);
+   inp->inp_flowid = stoeplitz_ip4port(inp->inp_faddr.s_addr,
+   inp->inp_laddr.s_addr, inp->inp_fport, inp->inp_lport);
 #endif
 #ifdef IPSEC
{
Index: netinet6/in6_pcb.c
===
RCS file: /cvs/src/sys/netinet6/in6_pcb.c,v
retrieving revision 1.111
diff -u -p -u -r1.111 in6_pcb.c
--- netinet6/in6_pcb.c  25 Jan 2021 03:40:47 -  1.111
+++ netinet6/in6_pcb.c  11 Feb 2021 10:34:50 -
@@ -303,8 +303,8 @@ in6_pcbconnect(struct inpcb *inp, struct
inp->inp_flowinfo |=
(htonl(ip6_randomflowlabel()) & IPV6_FLOWLABEL_MASK);
 #if NSTOEPLITZ > 0
-   inp->inp_flowid = stoeplitz_ip6port(&inp->inp_laddr6,
-   &inp->inp_faddr6, inp->inp_lport, inp->inp_fport);
+   inp->inp_flowid = stoeplitz_ip6port(&inp->inp_faddr6,
+   &inp->inp_laddr6, inp->inp_fport, inp->inp_lport);
 #endif
in_pcbrehash(inp);
return (0);



Re: isakmpd link dynamically

2021-02-11 Thread Alexander Bluhm
On Wed, Feb 10, 2021 at 04:16:10PM -0700, Theo de Raadt wrote:
> When I re-ordered rc in Slovenia many years ago, I got it right.

NFS /usr over IPsec cannot work.  Without IPsec it is fine.
1. mount -s /usr >/dev/null 2>&1
2. start_daemon syslogd ldattach pflogd nsd unbound ntpd
3. start_daemon iscsid isakmpd iked sasyncd ldapd npppd

> So, I think we should move these two daemons.

What do you mean with "move"?
- install them in /usr/sbin -> inconsistent with usr.sbin source tree
- recommit in /usr/src/usr.sbin -> we loose history
- move the history to /cvs/src/usr.sbin -> someone said no more cvs surgery

I would like to commit my static linking diff as is.
Moving looks more complex to me.

bluhm