Commit graph

9007 commits

Author SHA1 Message Date
cinap_lenrek
e687d25478 devip: use top bit (type) | subnet-id for V6H() route hash macro
theres no structure in the lower 32 bits of an ipv6 address.

use the top bit to distinguish special stuff like multicast
and link-local addresses, and use the 16-bit subnet-id bits
for the rest.
2021-10-10 14:22:14 +00:00
cinap_lenrek
1a6324970d devip: cache arp entry in Routehint
Instead of having to do an arp hash table lookup for each
outgoing ip packet, forward the Routehint pointer to the
medium's bwrite() function and let it cache the arp entry
pointer.

This avoids route and arp hash table lookups for tcp, il
and connection oriented udp.

It also allows us to avoid multiple route and arp table
lookups for the retransmits once an arp/neighbour solicitation
response arrives.
2021-10-09 18:26:16 +00:00
risto.salminen@gmx.com
d280f411f6 upas/fs: add missing newline to a debug print
Noticed while doing some debugging.
2021-10-09 10:53:39 +00:00
james palmer
a8ad3fb3d0 acme: don't let tag button draw over tag border. 2021-10-06 09:19:58 +00:00
Igor Böhm
0c0ffafb5b sam(1): fix description of ctrl+g 2021-10-05 20:17:33 +00:00
cinap_lenrek
6ebb8b9e35 devip: use better hashipa() macro, use RWlock for arp cache 2021-10-03 15:58:58 +00:00
cinap_lenrek
55c3138c64 kernel: ensure that all accesses to Mhead.mount is done with Mhead.lock acquired
The Mhead structures have two sources of references to them:

- from Pgrp.mnthash hash-table
- from a channels Chan.umh pointer as returned by namec() for a union directory

Unless one holds the Mhead.lock RWLock, the Mhead.mount chain
can be mutated by eigther cmount(), cunmount() or closepgrp().

Readers, skipping acquiering the lock where:

mountfix(): responsible for rewriting directory entries for
union directory reads; was walking the Mhead.mount chain to
detect if the passed channel itself appears in the mount list.

cmount(): had a check and copy when "new" chan was a union itself
and if the MCREATE flag is set and would copy the mount table.
All this needs to be done with Mhead read-locked while copying
the mount entries.

devproc(): in the handler for reading /proc/n/ns file.

namec(): while checking if the Chan->umh should be initialized.

In addition to this, cmount() is changed to do the mountfree()
of the original mount chain when MREPL is done after releasing
the locks.

Also, some cosmetic changes...
2021-10-03 15:56:51 +00:00
Igor Böhm
b638114186 vncv: enable connecting to Darwin hosts
Tested on MacOS Catalina and Big Sur releases.

Update man page to highlight weak encryption of vnc, recommending to
tunnel via ssh (thanks unobe).
2021-09-25 20:40:47 +00:00
qwx
c9b48aec54 sega(1): fix typo 2021-09-30 14:20:03 +00:00
Sigrid Solveig Haflínudóttir
bd63aeb60d libtags: opus: fix duration on truncated files 2021-09-28 01:17:10 +00:00
Noam Preil
df25039bb3 venti: fix fprint format string 2021-09-27 04:19:00 +00:00
cinap_lenrek
d43d79bda4 devip: implement ipv4 arp timeout with icmp host unreachable notification
The IPv4 ARP cache used to indefinitely buffer packets in the Arpent hold list.
This is bad in case of a router, because it opens a 1 second
(retransmit time) window to leak all the to be forwarded packets.

This change makes the ipv4 arp code path similar to the IPv6 neighbour
solicitation path, using the retransmit process to time out old entries
(after 3 arp retransmits => 3 seconds).

A new function arpcontinue() has been added that unifies the point when
we schedule the (ipv6 sol retransmit) / (ipv4 arp timeout) and reduce
the hold queue to the last packet and unlock the cache.

As a bonus, we also now send a icmp host unreachable notification
for the dropped packets.
2021-09-26 18:43:29 +00:00
cinap_lenrek
1cff923af4 devtls: fix bwrite memory leak when channel stops being open
tlsbwrite() would call checkstate() before calling tlsrecwrite()
to make sure the channel is open. however, because checkstate()
only raises the error, the Block* passed wont be freed and
would result in a memory leak.

move the checkstate() call inside tlsrecwrite() to reuse the
error handling that frees the block on error.
2021-09-25 20:35:04 +00:00
Ori Bernstein
235ef367d7 vmx: update openbsd kernel heuristics
in OpenBSD 6.9 and up, the kernel (bsd, bsd.mp) still has
the ostype symbols, but bsd.rd appears to have lost them,
even when decompressed.

so, as a result, we should use what we have, which isn't
much.
2021-09-25 16:57:58 +00:00
cinap_lenrek
6e8b8c8f1a /sys/lib/acid/pool: format addresses using A format, instead of X (32 bit) 2021-09-25 14:51:23 +00:00
nessabeene@gmail.com
3ac6d894d7 audiohda: Add DID for Intel 200 Series PCH HD Audio 2021-09-11 12:07:16 +00:00
Ori Bernstein
8f4842d346 git: when stealing from the old packs list, keep what we stole.
we were missing a return after stealing, which killed the point
of doing the theft.
2021-09-14 16:13:58 +00:00
Ori Bernstein
390abbd1c7 archacpi: leave acpi enabled with *acpi=
*acpi= was treated the same as *acpi=0, when we
want it to be treated the same as *acpi=1
2021-09-13 23:56:26 +00:00
Sigrid Solveig Haflínudóttir
4f310b8f51 devvmx: skip tsc offset writing if CPU doesn't support it 2021-09-13 22:54:05 +00:00
Ori Bernstein
c7dcc82b0b git/query: fix spurious merge requests
Due to the way LCA is defined, a using a strict LCA
on a graph like this:

 <--a--b--c--d--e--f--g
     \               /
       +-----h-------

can lead to spurious requests to merge. This happens
because 'lca(b, g)' would return 'a', since it can be
reached in one step from 'b', and 2 steps from 'g', while
reaching 'b' from 'a' would be a longer path.

As a result, we need to implement an lca variant that
returns the starting node if one is reachable from the
other, even if it's already found the technically correct
least common ancestor.

This replaces our LCA algorithm with one based on the
painting we do while finding a twixt, making it give
the resutls we want.
git/query: fix spurious merge requests

Due to the way LCA is defined, a using a strict LCA
on a graph like this:

 <--a--b--c--d--e--f--g
     \               /
       +-----h-------

can lead to spurious requests to merge. This happens
because 'lca(b, g)' would return 'a', since it can be
reached in one step from 'b', and 2 steps from 'g', while
reaching 'b' from 'a' would be a longer path.

As a result, we need to implement an lca variant that
returns the starting node if one is reachable from the
other, even if it's already found the technically correct
least common ancestor.

This replaces our LCA algorithm with one based on the
painting we do while finding a twixt.
2021-09-11 17:46:26 +00:00
cinap_lenrek
546f8cfeca 9boot: fix isowalk() for directories spanning multiple sectors
directory entries cannot span sector boundaries, meaning
that the end of a sector would be zero padded until the
next sector.

we have to skip over these zero paddings to fully read
the directory.
2021-09-11 12:26:35 +00:00
qwx
e279699344 plumber: remove $plumbsrv, add optional srvname, usage check
Plumber both posts a service to /srv and sets a $plumbsrv environment
variable.  Our libplumb no longer uses $plumbsrv and nothing else
does.  It's a silly hack;  rc doesn't update /env immediately, and
scripts, which for instance set up subrios, cannot rely on it to
clean up the plumber at the end.

Instead, add the option to specify a srvname, actually check for some
common errors and print a usage string.

Thanks to Ori for input and a preliminary patch.
2021-09-10 21:03:47 +00:00
cinap_lenrek
d1986d8c0e ether82598: add pci device id for ixgbe i52899 (thanks izaki) 2021-09-09 23:13:30 +00:00
cinap_lenrek
084c2e6a65 fix manpage references for dup(2), kproc(9) and panic(9). 2021-09-08 18:22:35 +00:00
cinap_lenrek
33ac896d47 ndb(2): document txt and txtrr attributes. 2021-09-08 18:20:59 +00:00
cinap_lenrek
df66e62842 ndb/dns: make dblookup() consistent with cachedb operation, bring back txtrr for compatibility
- enforce same behaviour as cachedb server in dblookup():
	- force Taaaa record type on ipv6= attributes, regardless of value
	- return Taaaa records for ip= attributes containing ipv6 values
	- return Ta records only for ip= attributes containing ipv4 values

- for compatibility, bring back support for txtrr= type, but handle consistently
2021-09-08 17:34:04 +00:00
cinap_lenrek
1299ea4d89 ndb/dnsdebug: make usage flags consistent 2021-09-08 17:26:31 +00:00
Ori Bernstein
7ea6821a83 rc: revert 2f8a59f4b5
this patch doesn't pull its weight; it's not worth it.
2021-09-08 14:24:25 +00:00
cinap_lenrek
41369692bf ndb/dns: fix wrong ndb attribute "txtrr" vs. "txt" for caching server 2021-09-08 13:34:23 +00:00
qwx
87a823332f vgadb: add cyber938x bios offset for cyber 9525 (thanks lyndsay) 2021-09-06 21:04:35 +00:00
Ori Bernstein
d116b2d47c etheriwl: add did for Intel Centrino Advanced-N + WiMAX 6250 (thanks Nessa) 2021-09-05 00:16:22 +00:00
qwx
bcdfdab41b ether82563: add pci id for i219-v on t490s 2021-09-04 23:55:20 +00:00
glenda
3e7a249f14 /rc/bin/9fs: remove case 9bugs (defunct) 2021-09-04 01:49:04 +00:00
glenda
79b325528a /rc/bin/9fs: update case 9contrib for new server 2021-09-04 01:32:00 +00:00
Ori Bernstein
d9564c0642 git: separate author and committer
Git has the ability to track the person who
creates a commit separately from the person
who wrote the commit. For git9, we ignored
this feature.

However, as we start using git/import more,
it will be useful to figure out who imported
a commit, as well as who wrote it.

This change adds support for seeing this
information in git, as well as setting the
author and committer separately in git/import.
2021-09-03 02:47:18 +00:00
Amavect
485b334608 cmd/mkfile: major cleanup
Target generation is revised, split into $YTARG and $TARG.
$PROGS is inlined to the cmd target.
%.cpus is added to allow chaining: mk all.cpus
$POWERLESS is added, since dtracy doesn't build yet on ppc.
$DIRS regexp is simplified, simplifing $NOMK.
$cpuobjtype is replaced with cp's recipe for copying itself on $cputype.
$APEDIRS is removed.
The none target is renamed to usage, since it prints out usage.
The ape target is removed.
The dirs target is replaced by all.dirs
%.directories is replaced by %.dirs
The all target serializes directories after cmds to match the install target recipe.
All regexp rules are replaced with nonregexp versions for clarity.
The &:n: rule is removed. Just build the $O.$cmd file.
.y files now build .c files, not .tab.c files, and remove (bc|units|mpc|pc).c:R:
All safeinstall rules are removed.
The cleanfiles rule is renamed to cleancmds and simplified.
%.clean is removed. Just use mk cleancmds.
The install rule serializes cp and yacc before building anything else, avoiding races.
The installall recipe is simplified with the install.cpus prereq.
%.installall is removed. Just use mk $cmd.install.cpus
The $O.cj, %.update, and compilers rules are removed.
2021-08-28 13:15:02 +00:00
kemal
1a444750d6 ssh: use RSA/SHA-256 instead of RSA/SHA-1 as the public key algorithm
openssh now disables RSA/SHA-1 by default, so using RSA/SHA-1 will
eventually cause us problems:

https://undeadly.org/cgi?action=article;sid=20210830113413

in addition, github will disable RSA/SHA-1 for recently added RSA keys:

https://github.blog/2021-09-01-improving-git-protocol-security-github/

this patch modifies ssh.c to use RSA/SHA-256 (aka rsa-sha2-256)
instead of RSA/SHA-1 (aka ssh-rsa) as the public key algorithm.

NOTE: public rsa keys and thumbprints are ***NOT AFFECTED***
by this patch.

while we're here, remove the workaround for github.com. it seems
that github has fixed their implementation, and does not look into
macalgs when we're using an aead cipher.
---
2021-09-02 13:28:48 +00:00
qwx
19a548fd49 joy(1): fix typo (thanks lyndon) 2021-09-01 23:30:52 +00:00
qwx
6d4261baab add joy(1): joystick script for all emulators, and docs
remove old /sys/src/games/nes/joynes in favor of joy(1).
joy(1) has more buttons for the other emulators;  there is
no longer a significance in the order of the keys.
document nusb/joy, add information in each emulator manpage.
2021-09-01 22:47:30 +00:00
cinap_lenrek
6c94627105 vga: add eeepc1005ha graphics (thanks Andrew Eggenberger)
> This patch enables use of the igfx controller rather than vesa on the
> eeepc1005ha netbook. This means using the full screen resolution of
> 1024x600.

> *Andrew Eggenberger*
2021-08-31 15:53:37 +00:00
qwx
49b5319f76 audiohda: fix syntax error 2021-08-30 16:55:30 +00:00
Sigrid Solveig Haflínudóttir
7bdcdeafaf audiohda: add ztom z36*/z37* device id 2021-08-29 23:59:45 +00:00
Sigrid Solveig Haflínudóttir
ec33d29cf6 ether8169: support rtl8402 variant 2021-08-29 23:12:33 +00:00
Ori Bernstein
e6f0abc25e date(1): sync with reality
'date -m' was removed, but evidence of its
existence was left in the manpage.
2021-08-29 01:00:36 +00:00
Ori Bernstein
61f37abf57 git(1): "see also" consistency (thanks sirjofri)
adds commas between "see also" entries to
make it consistent with other man pages.
2021-08-27 14:13:11 +00:00
glenda
1bb1b1a937 /rc/bin/9fs: 9front.org files now live on port 9000. 2021-08-27 01:09:12 +00:00
rodri
d87fb23a93 bring games/swar from 1ed sources. 2021-08-26 20:04:59 +00:00
Ori Bernstein
0741147eab git/serve: add a '\n' after HEAD
Per the docs:

	the sender SHOULD include a LF, but the
	receiver MUST NOT complain if it is not
	present.

I typoed away the SHOULD, and got missed the
MUST NOT.

thanks qbit.
2021-08-25 22:15:34 +00:00
Ori Bernstein
9ca6ca345f git/compat: add support for ls-remote [-d]
This is used by 'go get' sometimes, so add it.
2021-08-25 02:24:15 +00:00
qwx
ad26f82e44 man page fixes (thanks stuart morrow) 2021-08-24 21:45:37 +00:00