handle phy-handle in cpsw(4)
Adjust cpsw for linux 4.20 device tree changes. 5f681f41fe17 ARM: dts: am335x: Replace remaining legacy phy_id with phy-handle e99c4d576254 ARM: dts: dra62x-j5eco-evm: get rid of phy_id property 3a25128c02f6 ARM: dts: dm8148-t410: get rid of phy_id property abf878ddfdf2 ARM: dts: dm8148-evm: get rid of phy_id property 2ac921dc010a ARM: dts: am57xx-cl-som-am57x: get rid of phy_id property adfcf71b9f5c ARM: dts: am57xx-idk-common: get rid of phy_id property 4d80b7c5077b ARM: dts: dra7-evm: get rid of phy_id property c4ab24684565 ARM: dts: dra71-evm: get rid of phy_id property f1934c90a2cb ARM: dts: dra72-evm-revc: get rid of phy_id property 24e0023c6005 ARM: dts: dra72-evm: get rid of phy_id property 5180679c9a9d ARM: dts: dra76-evm: get rid of phy_id property 04f48434dce0 ARM: dts: am437x-cm-t43: get rid of phy_id property cfd91db31fbf ARM: dts: am437x-gp-evm: get rid of phy_id property c0af07883c2c ARM: dts: am437x-idk-evm: get rid of phy_id property 7c0373b16f04 ARM: dts: am437x-sk-evm: get rid of phy_id property 5925ae235418 ARM: dts: am43x-epos-evm: get rid of phy_id property 4d8b032d3c03 ARM: dts: am335x-bone-common: get rid of phy_id property 8cd1cc3f7c0a ARM: dts: am335x-chiliboard: get rid of phy_id property 0d175556e2e4 ARM: dts: am335x-cm-t335: get rid of phy_id property 53c2c22b8cfa ARM: dts: am335x-evmsk: get rid of phy_id property d9312570d5d1 ARM: dts: am335x-igep0033: get rid of phy_id property 5ec73320abd7 ARM: dts: am335x-lxm: get rid of phy_id property 5ef346bb8092 ARM: dts: am335x-moxa-uc-8100-me-t: get rid of phy_id property 25245c44d4d7 ARM: dts: am335x-nano: get rid of phy_id property 4f9584518f24 ARM: dts: am335x-pdu001: get rid of phy_id property 9e19b4bd012b ARM: dts: am335x-pepper: get rid of phy_id property 769de05b2ae4 ARM: dts: am335x-shc: get rid of phy_id property Index: if_cpsw.c === RCS file: /cvs/src/sys/arch/armv7/omap/if_cpsw.c,v retrieving revision 1.43 diff -u -p -r1.43 if_cpsw.c --- if_cpsw.c 30 Apr 2017 16:45:45 - 1.43 +++ if_cpsw.c 23 Dec 2018 05:18:05 - @@ -1285,7 +1285,7 @@ cpsw_get_port_config(struct cpsw_port_co { char mode[32]; uint32_t phy_id[2]; - int node; + int node, phy_handle, phy_node; int port = 0; for (node = OF_child(pnode); node; node = OF_peer(node)) { @@ -1298,6 +1298,13 @@ cpsw_get_port_config(struct cpsw_port_co if (OF_getpropintarray(node, "phy_id", phy_id, sizeof(phy_id)) == sizeof(phy_id)) conf[port].phy_id = phy_id[1]; + else if ((phy_handle = + OF_getpropint(node, "phy-handle", 0)) != 0) { + phy_node = OF_getnodebyphandle(phy_handle); + if (phy_node) + conf[port].phy_id = OF_getpropint(phy_node, + "reg", MII_PHY_ANY); + } if (OF_getprop(node, "phy-mode", mode, sizeof(mode)) > 0 && !strcmp(mode, "rgmii"))
Re: change nc(1) port range delimiter
Stuart Henderson wrote: > But I can't imagine scanning a range by name as being much used > (tcpmux-socks or something just doesn't make sense). > > What I think would be least disruptive is to continue to allow - where > the rest of the parameter is numeric. For alphabetic parameters try > parsing the whole word as a service; use it if valid. If not, > *either* it could just error out (simple and unambiguous) *or* it > could try parsing as a named range. But I don't think you will hurt > anyone by just erroring out in that case. This is my attempt at that. Index: nc.1 === RCS file: /cvs/src/usr.bin/nc/nc.1,v retrieving revision 1.91 diff -u -p -r1.91 nc.1 --- nc.125 Sep 2018 20:05:07 - 1.91 +++ nc.123 Dec 2018 00:25:43 - @@ -391,8 +391,8 @@ sockets, a destination is required and i option is given). .Pp .Ar port -can be a specified as a numeric port number, or as a service name. -Ports may be specified in a range of the form +can be a specified as a numeric port number or as a service name. +Port ranges may be specified as numeric port numbers of the form .Ar nn Ns - Ns Ar mm . In general, a destination port must be specified, Index: netcat.c === RCS file: /cvs/src/usr.bin/nc/netcat.c,v retrieving revision 1.199 diff -u -p -r1.199 netcat.c --- netcat.c29 Nov 2018 14:25:06 - 1.199 +++ netcat.c23 Dec 2018 00:27:00 - @@ -42,6 +42,7 @@ #include #include +#include #include #include #include @@ -1427,7 +1428,7 @@ build_ports(char *p) int hi, lo, cp; int x = 0; - if ((n = strchr(p, '-')) != NULL) { + if (isdigit((unsigned char)*p) && (n = strchr(p, '-')) != NULL) { *n = '\0'; n++;
Re: change nc(1) port range delimiter
On Sat, Dec 22, 2018 at 06:53:24PM -0500, Ted Unangst wrote: > @@ -393,7 +393,7 @@ option is given). > .Ar port > can be a specified as a numeric port number, or as a service name. stray ^ article that can be zapped with this diff while here. > Ports may be specified in a range of the form > -.Ar nn Ns - Ns Ar mm . > +.Ar nn Ns : Ns Ar mm . If you implement both, you should say so. > -The port range was specified to limit the search to ports 20 \- 30. > +The port range was specified to limit the search to ports 20 : 30. Maybe use "to" here? Reads nicer imho as it's a proper sentence already. > @@ -584,3 +584,9 @@ the > combination could be useful for communications diagnostics. > Note that the amount of UDP traffic generated may be limited either > due to hardware resources and/or configuration settings. > +.Pp > +Previous versions of the > +.Nm nc > +utility used a hyphen to separate port ranges. > +This was changed to a colon to avoid ambiguity with hyphenated service names, > +though the hyphen separator remains supported for backwards compatibility. Do you want to throw out hyphen support eventually?
Re: change nc(1) port range delimiter
On 2018/12/22 16:44, Daniel Jakots wrote: > Hi, > > With nc(1) you can do: > nc -zv example.com 80 > or > nc -zv example.com http > which does the same. This works well unless the service name has a dash: > $ nc -zv example.com syslog-tls > nc: service "tls" unknown > > This is because nc(1) is able to do some port scanning and the > delimiter used for the range is the dash. When it sees a dash, it > thinks it's a port range. > > nc(1) is not the only software that takes an input that can be a port, > a range or a service name: pf is in this case too. In pf the delimiter > used is ":" so this works fine. > > Here's a diff that change the delimiter to ":". This breaks existing > scripts but it would make the syntax like pf.conf instead of using > another symbol for a port range. > > If you have a better idea how to solve this problem, please share! I think it's too late to mess about with the common syntax for scanning (i.e. "nc -zv foo 1-1023" or similar). It isn't just us - some other OS use OpenBSD as upstream for nc. But I can't imagine scanning a range by name as being much used (tcpmux-socks or something just doesn't make sense). What I think would be least disruptive is to continue to allow - where the rest of the parameter is numeric. For alphabetic parameters try parsing the whole word as a service; use it if valid. If not, *either* it could just error out (simple and unambiguous) *or* it could try parsing as a named range. But I don't think you will hurt anyone by just erroring out in that case.
Re: change nc(1) port range delimiter
On Sat, Dec 22 2018, "Ted Unangst" wrote: > Daniel Jakots wrote: >> Hi, >> >> With nc(1) you can do: >> nc -zv example.com 80 >> or >> nc -zv example.com http >> which does the same. This works well unless the service name has a dash: >> $ nc -zv example.com syslog-tls >> nc: service "tls" unknown >> >> This is because nc(1) is able to do some port scanning and the >> delimiter used for the range is the dash. When it sees a dash, it >> thinks it's a port range. >> >> nc(1) is not the only software that takes an input that can be a port, >> a range or a service name: pf is in this case too. In pf the delimiter >> used is ":" so this works fine. >> >> Here's a diff that change the delimiter to ":". This breaks existing >> scripts but it would make the syntax like pf.conf instead of using >> another symbol for a port range. >> >> If you have a better idea how to solve this problem, please share! > > This preserves the low-high syntax, adds low:high syntax, and also tries to be > smarter about service-name. > > First look for :. That's a range. > Next look for -. Then check it's not a service name. That's a range. > Otherwise it's a port. Looks like the nicest way to handle it. > It may work, but needs testing. Diff below hopefully has the same behavior, but with less churn and no goto. Index: netcat.c === RCS file: /cvs/src/usr.bin/nc/netcat.c,v retrieving revision 1.199 diff -u -p -p -u -r1.199 netcat.c --- netcat.c29 Nov 2018 14:25:06 - 1.199 +++ netcat.c23 Dec 2018 00:02:03 - @@ -1427,7 +1427,15 @@ build_ports(char *p) int hi, lo, cp; int x = 0; - if ((n = strchr(p, '-')) != NULL) { + if ((n = strchr(p, ':')) == NULL) { + if ((n = strchr(p, '-')) != NULL && + getservbyname(p, uflag ? "udp" : "tcp") != NULL) { + /* Really a service name, not a "lo-hi" port range. */ + n = NULL; + } + } + + if (n != NULL) { *n = '\0'; n++; -- jca | PGP : 0x1524E7EE / 5135 92C1 AD36 5293 2BDF DDCC 0DFA 74AE 1524 E7EE
Re: change nc(1) port range delimiter
But this doesn't describe the semantics of your diff. You have skipped details of your technical proposal. Perhaps those details aren't needed? Or perhaps they should be documented. > Theo de Raadt wrote: > > If you are going to introduce such complicated semantics, please > > include a proposal for the manual page change so that we can see > > if this can be simply described. Being dimply described in the > > manual page is a marker for whether a change is suitable. > > Stealing some words from chown... > > Index: nc.1 > === > RCS file: /cvs/src/usr.bin/nc/nc.1,v > retrieving revision 1.91 > diff -u -p -r1.91 nc.1 > --- nc.1 25 Sep 2018 20:05:07 - 1.91 > +++ nc.1 22 Dec 2018 23:52:22 - > @@ -393,7 +393,7 @@ option is given). > .Ar port > can be a specified as a numeric port number, or as a service name. > Ports may be specified in a range of the form > -.Ar nn Ns - Ns Ar mm . > +.Ar nn Ns : Ns Ar mm . > In general, > a destination port must be specified, > unless the > @@ -491,12 +491,12 @@ to report open ports, > rather than initiate a connection. > For example: > .Bd -literal -offset indent > -$ nc -z host.example.com 20-30 > +$ nc -z host.example.com 20:30 > Connection to host.example.com 22 port [tcp/ssh] succeeded! > Connection to host.example.com 25 port [tcp/smtp] succeeded! > .Ed > .Pp > -The port range was specified to limit the search to ports 20 \- 30. > +The port range was specified to limit the search to ports 20 : 30. > .Pp > Alternatively, it might be useful to know which server software > is running, and which versions. > @@ -584,3 +584,9 @@ the > combination could be useful for communications diagnostics. > Note that the amount of UDP traffic generated may be limited either > due to hardware resources and/or configuration settings. > +.Pp > +Previous versions of the > +.Nm nc > +utility used a hyphen to separate port ranges. > +This was changed to a colon to avoid ambiguity with hyphenated service names, > +though the hyphen separator remains supported for backwards compatibility.
Re: change nc(1) port range delimiter
Theo de Raadt wrote: > If you are going to introduce such complicated semantics, please > include a proposal for the manual page change so that we can see > if this can be simply described. Being dimply described in the > manual page is a marker for whether a change is suitable. Stealing some words from chown... Index: nc.1 === RCS file: /cvs/src/usr.bin/nc/nc.1,v retrieving revision 1.91 diff -u -p -r1.91 nc.1 --- nc.125 Sep 2018 20:05:07 - 1.91 +++ nc.122 Dec 2018 23:52:22 - @@ -393,7 +393,7 @@ option is given). .Ar port can be a specified as a numeric port number, or as a service name. Ports may be specified in a range of the form -.Ar nn Ns - Ns Ar mm . +.Ar nn Ns : Ns Ar mm . In general, a destination port must be specified, unless the @@ -491,12 +491,12 @@ to report open ports, rather than initiate a connection. For example: .Bd -literal -offset indent -$ nc -z host.example.com 20-30 +$ nc -z host.example.com 20:30 Connection to host.example.com 22 port [tcp/ssh] succeeded! Connection to host.example.com 25 port [tcp/smtp] succeeded! .Ed .Pp -The port range was specified to limit the search to ports 20 \- 30. +The port range was specified to limit the search to ports 20 : 30. .Pp Alternatively, it might be useful to know which server software is running, and which versions. @@ -584,3 +584,9 @@ the combination could be useful for communications diagnostics. Note that the amount of UDP traffic generated may be limited either due to hardware resources and/or configuration settings. +.Pp +Previous versions of the +.Nm nc +utility used a hyphen to separate port ranges. +This was changed to a colon to avoid ambiguity with hyphenated service names, +though the hyphen separator remains supported for backwards compatibility.
Re: [PATCH] Gemini Lake SoC pcidevs
Here is a dmesg and acpidump from another HP Stream laptop. Running with pcidevs patch and SDMMC_DEBUG turned on. OpenBSD 6.4-current (SDMMC_DEBUG) #280: Wed Dec 19 23:44:03 EST 2018 xxx@xxx:/usr/src/sys/arch/amd64/compile/SDMMC_DEBUG real mem = 4102090752 (3912MB) avail mem = 3968425984 (3784MB) mpath0 at root scsibus0 at mpath0: 256 targets mainbus0 at root bios0 at mainbus0: SMBIOS rev. 3 @ 0x75e05000 (36 entries) bios0: vendor Insyde version F.01 date 05/03/2018 bios0: HP HP Stream Laptop 14-cb1XX acpi0 at bios0: rev 2 acpi0: sleep states S0 S3 S4 S5 acpi0: tables DSDT FACP UEFI IHIS UEFI SSDT TPM2 SSDT SSDT MSDM BDAT DBG2 DBGP HPET LPIT APIC MCFG NPKT PRAM WSMT SSDT SSDT SSDT SSDT SSDT SSDT SSDT FPDT WDAT BGRT acpi0: wakeup devices PXSX(S4) RP01(S4) PXSX(S4) RP02(S4) PXSX(S4) RP03(S4) PXSX(S4) RP04(S4) PXSX(S4) RP05(S4) PXSX(S4) RP06(S4) XHC_(S4) HDAS(S3) acpitimer0 at acpi0: 3579545 Hz, 24 bits acpihpet0 at acpi0: 1920 Hz acpimadt0 at acpi0 addr 0xfee0: PC-AT compat cpu0 at mainbus0: apid 0 (boot processor) cpu0: Intel(R) Celeron(R) N4000 CPU @ 1.10GHz, 1097.43 MHz, 06-7a-01 cpu0: FPU,VME,DE,PSE,TSC,MSR,PAE,MCE,CX8,APIC,SEP,MTRR,PGE,MCA,CMOV,PAT,PSE36,CFLUSH,DS,ACPI,MMX,FXSR,SSE,SSE2,SS,HTT,TM,PBE,SSE3,PCLMUL,DTES64,MWAIT,DS-CPL,VMX,EST,TM2,SSSE3,SDBG,CX16,xTPR,PDCM,SSE4.1,SSE4.2,x2APIC,MOVBE,POPCNT,DEADLINE,AES,XSAVE,RDRAND,NXE,PAGE1GB,RDTSCP,LONG,LAHF,3DNOWP,PERF,ITSC,FSGSBASE,SGX,SMEP,ERMS,MPX,RDSEED,SMAP,CLFLUSHOPT,PT,SHA,UMIP,IBRS,IBPB,STIBP,SENSOR,ARAT,XSAVEOPT,XSAVEC,XGETBV1,XSAVES,MELTDOWN cpu0: 4MB 64b/line 16-way L2 cache cpu0: smt 0, core 0, package 0 mtrr: Pentium Pro MTRR support, 10 var ranges, 88 fixed ranges cpu0: apic clock running at 19MHz cpu0: mwait min=64, max=64, C-substates=0.2.0.2.4.2.1.1, IBE cpu1 at mainbus0: apid 2 (application processor) cpu1: Intel(R) Celeron(R) N4000 CPU @ 1.10GHz, 1096.97 MHz, 06-7a-01 cpu1: FPU,VME,DE,PSE,TSC,MSR,PAE,MCE,CX8,APIC,SEP,MTRR,PGE,MCA,CMOV,PAT,PSE36,CFLUSH,DS,ACPI,MMX,FXSR,SSE,SSE2,SS,HTT,TM,PBE,SSE3,PCLMUL,DTES64,MWAIT,DS-CPL,VMX,EST,TM2,SSSE3,SDBG,CX16,xTPR,PDCM,SSE4.1,SSE4.2,x2APIC,MOVBE,POPCNT,DEADLINE,AES,XSAVE,RDRAND,NXE,PAGE1GB,RDTSCP,LONG,LAHF,3DNOWP,PERF,ITSC,FSGSBASE,SGX,SMEP,ERMS,MPX,RDSEED,SMAP,CLFLUSHOPT,PT,SHA,UMIP,IBRS,IBPB,STIBP,SENSOR,ARAT,XSAVEOPT,XSAVEC,XGETBV1,XSAVES,MELTDOWN cpu1: 4MB 64b/line 16-way L2 cache cpu1: smt 0, core 1, package 0 ioapic0 at mainbus0: apid 1 pa 0xfec0, version 20, 120 pins acpimcfg0 at acpi0 acpimcfg0: addr 0xe000, bus 0-63 acpiprt0 at acpi0: bus 0 (PCI0) acpiprt1 at acpi0: bus -1 (RP01) acpiprt2 at acpi0: bus -1 (RP02) acpiprt3 at acpi0: bus -1 (RP03) acpiprt4 at acpi0: bus -1 (RP04) acpiprt5 at acpi0: bus 1 (RP05) acpiprt6 at acpi0: bus -1 (RP06) acpiec0 at acpi0 ### AML PARSE ERROR (0x4cd5): Undefined name: SMA4 error evaluating: \\_SB_.PCI0.LPCB.EC0_._REG acpiec _REG failed, broken BIOS acpipwrres0 at acpi0: DRST acpipwrres1 at acpi0: DRST acpipwrres2 at acpi0: DRST acpipwrres3 at acpi0: DRST acpipwrres4 at acpi0: DRST acpipwrres5 at acpi0: DRST acpicpu0 at acpi0: C3(10@150 mwait.1@0x60), C2(10@50 mwait.1@0x21), C1(1000@1 mwait.1@0x1), PSS acpicpu1 at acpi0: C3(10@150 mwait.1@0x60), C2(10@50 mwait.1@0x21), C1(1000@1 mwait.1@0x1), PSS acpitz0 at acpi0: critical temperature is 210 degC acpiac0 at acpi0: AC unit online acpibtn0 at acpi0: LID0 acpibtn1 at acpi0: PWRB acpibat0 at acpi0: BAT0 model Primary serial type LION oem HP acpipci0 at acpi0 PCI0: 0x 0x0011 0x0001 HPQ6001 at acpi0 not configured HPIC0003 at acpi0 not configured *ETD0742 at acpi0 not configured acpicmos0 at acpi0 INT3453 at acpi0 not configured INT33A1 at acpi0 not configured MSFT0101 at acpi0 not configured PNP0C14 at acpi0 not configured INT3400 at acpi0 not configured INT3403 at acpi0 not configured acpivideo0 at acpi0: GFX0 acpivout0 at acpivideo0: DD1F cpu0: Enhanced SpeedStep 1097 MHz: speeds: 1101, 1100, 1000, 900, 800 MHz pci0 at mainbus0 bus 0 pchb0 at pci0 dev 0 function 0 "Intel Gemini Lake Host" rev 0x03 "Intel Gemini Lake DPTF" rev 0x03 at pci0 dev 0 function 1 not configured "Intel Gemini Lake GNA" rev 0x03 at pci0 dev 0 function 3 not configured "Intel UHD Graphics 600" rev 0x03 at pci0 dev 2 function 0 not configured azalia0 at pci0 dev 14 function 0 "Intel Gemini Lake HD Audio" rev 0x03: msi azalia0: codecs: Realtek ALC282, Intel/0x280d, using Realtek ALC282 audio0 at azalia0 "Intel Gemini Lake MEI" rev 0x03 at pci0 dev 15 function 0 not configured ppb0 at pci0 dev 19 function 0 "Intel Gemini Lake PCIE" rev 0xf3: msi pci1 at ppb0 bus 1 "Realtek 8822BE" rev 0x00 at pci1 dev 0 function 0 not configured xhci0 at pci0 dev 21 function 0 "Intel Gemini Lake xHCI" rev 0x03: msi, xHCI 1 usb0 at xhci0: USB revision 3 uhub0 at usb0 configuration 1 interface 0 "Intel xHCI root hub" rev 3.00/1.00 addr 1 sdhc0 at pci0 dev 28 function 0 "Intel Gemini Lake eMMC" rev 0x03: apic 1 int 39 sdhc0: SDHC 3.0, 200 MHz base clock sdmmc0 at sdhc0: 8-bit, sd high-speed, mmc high-speed, dma pcib0
Re: change nc(1) port range delimiter
If you are going to introduce such complicated semantics, please include a proposal for the manual page change so that we can see if this can be simply described. Being dimply described in the manual page is a marker for whether a change is suitable. Ted Unangst wrote: > Daniel Jakots wrote: > > Hi, > > > > With nc(1) you can do: > > nc -zv example.com 80 > > or > > nc -zv example.com http > > which does the same. This works well unless the service name has a dash: > > $ nc -zv example.com syslog-tls > > nc: service "tls" unknown > > > > This is because nc(1) is able to do some port scanning and the > > delimiter used for the range is the dash. When it sees a dash, it > > thinks it's a port range. > > > > nc(1) is not the only software that takes an input that can be a port, > > a range or a service name: pf is in this case too. In pf the delimiter > > used is ":" so this works fine. > > > > Here's a diff that change the delimiter to ":". This breaks existing > > scripts but it would make the syntax like pf.conf instead of using > > another symbol for a port range. > > > > If you have a better idea how to solve this problem, please share! > > This preserves the low-high syntax, adds low:high syntax, and also tries to be > smarter about service-name. > > First look for :. That's a range. > Next look for -. Then check it's not a service name. That's a range. > Otherwise it's a port. > > It may work, but needs testing. > > Index: netcat.c > === > RCS file: /cvs/src/usr.bin/nc/netcat.c,v > retrieving revision 1.199 > diff -u -p -r1.199 netcat.c > --- netcat.c 29 Nov 2018 14:25:06 - 1.199 > +++ netcat.c 22 Dec 2018 22:27:47 - > @@ -1426,46 +1426,53 @@ build_ports(char *p) > char *n; > int hi, lo, cp; > int x = 0; > + char *tmp; > > - if ((n = strchr(p, '-')) != NULL) { > - *n = '\0'; > - n++; > - > - /* Make sure the ports are in order: lowest->highest. */ > - hi = strtoport(n, uflag); > - lo = strtoport(p, uflag); > - if (lo > hi) { > - cp = hi; > - hi = lo; > - lo = cp; > - } > + if ((n = strchr(p, ':')) != NULL) > + goto range; > > - /* > - * Initialize portlist with a random permutation. Based on > - * Knuth, as in ip_randomid() in sys/netinet/ip_id.c. > - */ > - if (rflag) { > - for (x = 0; x <= hi - lo; x++) { > - cp = arc4random_uniform(x + 1); > - portlist[x] = portlist[cp]; > - if (asprintf(&portlist[cp], "%d", x + lo) < 0) > - err(1, "asprintf"); > - } > - } else { /* Load ports sequentially. */ > - for (cp = lo; cp <= hi; cp++) { > - if (asprintf(&portlist[x], "%d", cp) < 0) > - err(1, "asprintf"); > - x++; > - } > - } > - } else { > - char *tmp; > + if ((n = strchr(p, '-')) != NULL) > + if (getservbyname(p, uflag ? "udp" : "tcp") == NULL) > + goto range; > + > + hi = strtoport(p, uflag); > + if (asprintf(&tmp, "%d", hi) != -1) > + portlist[0] = tmp; > + else > + err(1, NULL); > + > + return; > > - hi = strtoport(p, uflag); > - if (asprintf(&tmp, "%d", hi) != -1) > - portlist[0] = tmp; > - else > - err(1, NULL); > +range: > + *n = '\0'; > + n++; > + > + /* Make sure the ports are in order: lowest->highest. */ > + hi = strtoport(n, uflag); > + lo = strtoport(p, uflag); > + if (lo > hi) { > + cp = hi; > + hi = lo; > + lo = cp; > + } > + > + /* > + * Initialize portlist with a random permutation. Based on > + * Knuth, as in ip_randomid() in sys/netinet/ip_id.c. > + */ > + if (rflag) { > + for (x = 0; x <= hi - lo; x++) { > + cp = arc4random_uniform(x + 1); > + portlist[x] = portlist[cp]; > + if (asprintf(&portlist[cp], "%d", x + lo) < 0) > + err(1, "asprintf"); > + } > + } else { /* Load ports sequentially. */ > + for (cp = lo; cp <= hi; cp++) { > + if (asprintf(&portlist[x], "%d", cp) < 0) > + err(1, "asprintf"); > + x++; > + } > } > } > >
Re: change nc(1) port range delimiter
On Sat, Dec 22, 2018 at 04:44:14PM -0500, Daniel Jakots wrote: > Here's a diff that change the delimiter to ":". This breaks existing > scripts but it would make the syntax like pf.conf instead of using > another symbol for a port range. Changing it to double-colon for sanity and consistency seems good, but maybe that's too much of a break at once? Or are ranges not considered critical enough to worry about this? I never use them. > If you have a better idea how to solve this problem, please share! Perhaps phasing this out by first accepting both as delimiter, then dropping the dash later on? One alternative would be to try the given word as is first, only interpreting it as a range when it's not a valid service name. Also, how do other netcat implementations handle ranges? Do we care about consistency with these?
Re: change nc(1) port range delimiter
Daniel Jakots wrote: > Hi, > > With nc(1) you can do: > nc -zv example.com 80 > or > nc -zv example.com http > which does the same. This works well unless the service name has a dash: > $ nc -zv example.com syslog-tls > nc: service "tls" unknown > > This is because nc(1) is able to do some port scanning and the > delimiter used for the range is the dash. When it sees a dash, it > thinks it's a port range. > > nc(1) is not the only software that takes an input that can be a port, > a range or a service name: pf is in this case too. In pf the delimiter > used is ":" so this works fine. > > Here's a diff that change the delimiter to ":". This breaks existing > scripts but it would make the syntax like pf.conf instead of using > another symbol for a port range. > > If you have a better idea how to solve this problem, please share! This preserves the low-high syntax, adds low:high syntax, and also tries to be smarter about service-name. First look for :. That's a range. Next look for -. Then check it's not a service name. That's a range. Otherwise it's a port. It may work, but needs testing. Index: netcat.c === RCS file: /cvs/src/usr.bin/nc/netcat.c,v retrieving revision 1.199 diff -u -p -r1.199 netcat.c --- netcat.c29 Nov 2018 14:25:06 - 1.199 +++ netcat.c22 Dec 2018 22:27:47 - @@ -1426,46 +1426,53 @@ build_ports(char *p) char *n; int hi, lo, cp; int x = 0; + char *tmp; - if ((n = strchr(p, '-')) != NULL) { - *n = '\0'; - n++; - - /* Make sure the ports are in order: lowest->highest. */ - hi = strtoport(n, uflag); - lo = strtoport(p, uflag); - if (lo > hi) { - cp = hi; - hi = lo; - lo = cp; - } + if ((n = strchr(p, ':')) != NULL) + goto range; - /* -* Initialize portlist with a random permutation. Based on -* Knuth, as in ip_randomid() in sys/netinet/ip_id.c. -*/ - if (rflag) { - for (x = 0; x <= hi - lo; x++) { - cp = arc4random_uniform(x + 1); - portlist[x] = portlist[cp]; - if (asprintf(&portlist[cp], "%d", x + lo) < 0) - err(1, "asprintf"); - } - } else { /* Load ports sequentially. */ - for (cp = lo; cp <= hi; cp++) { - if (asprintf(&portlist[x], "%d", cp) < 0) - err(1, "asprintf"); - x++; - } - } - } else { - char *tmp; + if ((n = strchr(p, '-')) != NULL) + if (getservbyname(p, uflag ? "udp" : "tcp") == NULL) + goto range; + + hi = strtoport(p, uflag); + if (asprintf(&tmp, "%d", hi) != -1) + portlist[0] = tmp; + else + err(1, NULL); + + return; - hi = strtoport(p, uflag); - if (asprintf(&tmp, "%d", hi) != -1) - portlist[0] = tmp; - else - err(1, NULL); +range: + *n = '\0'; + n++; + + /* Make sure the ports are in order: lowest->highest. */ + hi = strtoport(n, uflag); + lo = strtoport(p, uflag); + if (lo > hi) { + cp = hi; + hi = lo; + lo = cp; + } + + /* +* Initialize portlist with a random permutation. Based on +* Knuth, as in ip_randomid() in sys/netinet/ip_id.c. +*/ + if (rflag) { + for (x = 0; x <= hi - lo; x++) { + cp = arc4random_uniform(x + 1); + portlist[x] = portlist[cp]; + if (asprintf(&portlist[cp], "%d", x + lo) < 0) + err(1, "asprintf"); + } + } else { /* Load ports sequentially. */ + for (cp = lo; cp <= hi; cp++) { + if (asprintf(&portlist[x], "%d", cp) < 0) + err(1, "asprintf"); + x++; + } } }
change nc(1) port range delimiter
Hi, With nc(1) you can do: nc -zv example.com 80 or nc -zv example.com http which does the same. This works well unless the service name has a dash: $ nc -zv example.com syslog-tls nc: service "tls" unknown This is because nc(1) is able to do some port scanning and the delimiter used for the range is the dash. When it sees a dash, it thinks it's a port range. nc(1) is not the only software that takes an input that can be a port, a range or a service name: pf is in this case too. In pf the delimiter used is ":" so this works fine. Here's a diff that change the delimiter to ":". This breaks existing scripts but it would make the syntax like pf.conf instead of using another symbol for a port range. If you have a better idea how to solve this problem, please share! Cheers, Daniel Index: nc.1 === RCS file: /cvs/src/usr.bin/nc/nc.1,v retrieving revision 1.91 diff -u -p -r1.91 nc.1 --- nc.125 Sep 2018 20:05:07 - 1.91 +++ nc.122 Dec 2018 21:21:40 - @@ -393,7 +393,7 @@ option is given). .Ar port can be a specified as a numeric port number, or as a service name. Ports may be specified in a range of the form -.Ar nn Ns - Ns Ar mm . +.Ar nn : Ns Ar mm . In general, a destination port must be specified, unless the @@ -491,12 +491,12 @@ to report open ports, rather than initiate a connection. For example: .Bd -literal -offset indent -$ nc -z host.example.com 20-30 +$ nc -z host.example.com 20:30 Connection to host.example.com 22 port [tcp/ssh] succeeded! Connection to host.example.com 25 port [tcp/smtp] succeeded! .Ed .Pp -The port range was specified to limit the search to ports 20 \- 30. +The port range was specified to limit the search to ports 20 : 30. .Pp Alternatively, it might be useful to know which server software is running, and which versions. @@ -509,7 +509,7 @@ flag, or perhaps by issuing a .Qq Dv QUIT command to the server: .Bd -literal -offset indent -$ echo "QUIT" | nc host.example.com 20-30 +$ echo "QUIT" | nc host.example.com 20:30 SSH-1.99-OpenSSH_3.6.1p2 Protocol mismatch. 220 host.example.com IMS SMTP Receiver Version 0.84 Ready Index: netcat.c === RCS file: /cvs/src/usr.bin/nc/netcat.c,v retrieving revision 1.199 diff -u -p -r1.199 netcat.c --- netcat.c29 Nov 2018 14:25:06 - 1.199 +++ netcat.c22 Dec 2018 21:21:40 - @@ -1427,7 +1427,7 @@ build_ports(char *p) int hi, lo, cp; int x = 0; - if ((n = strchr(p, '-')) != NULL) { + if ((n = strchr(p, ':')) != NULL) { *n = '\0'; n++;
Re: mandoc -T html default style
Hi Ted, Ted Unangst wrote on Sat, Dec 22, 2018 at 12:13:35PM -0500: > Ingo Schwarze wrote: >> What about making -O style= *compulsory* unless "option style" is >> defined in man.conf(5)? Just error out when no style sheet is >> configured? That can be combined with inlining the full set of >> rules when -O style=inline is explicitly specified. > This seems unnecessarily user hostile. Like we have failed to reach a > decision, so push it to the user. But at times I do value explicit options > over implicit defaults, so it's not without merit. I think it will annoy me, That objection is not without merit. Rapha@ also said he likes that "mandoc -T html" just works. And indeed, making -O style= compulsory would break simple-minded use cases like $ MANPAGER="lynx -force_html" man -T html pledge Yes, i have occusionally heard that some people like and use the colourful output resulting from that (even though i do not). Sure, you can still configure "option style" in man.conf(5), but it would no longer work out of the box, and this is an example of a use case that doesn't necessarily need a sophisticated style sheet. > but if I can't convince you my preferred default is best, then maybe this is > the way to go. Nobody will be surprised or disappointed with the output at > least. Hum. Maybe let's just keep the current situation for now, until somebody manages to come up with a suggestion that doesn't have blatant downsides: * -O style=mandoc.css is really only adequate for a small subset of local viewing and webserver purposes and not suited to any serious installation. * -O style=/mandoc.css is really only adequate for a subset of webserver installations and quite unhelpful for local viewing. * Nobody was enthusiastic about /usr/share/misc/mandoc.css, and it's only useful for local viewing anyway - and with unveil(2), maybe not even that. * A full set of inline rules by default hides the most typical user error and is not a sane default for webserver installation at all. * Making -O style= compulsory reduces the risk a lot that bad configurations get deployed into production without thinking, but it breaks the simplest use cases. The status quo looks like some kind of a compromise - not ideal for any of the use cases, but not totally breaking any of them, either. Yours, Ingo
Re: mandoc -T html -O toc, nested anchor tags
Hi Raphael, Raphael Graf wrote on Sat, Dec 22, 2018 at 03:32:45PM +0100: > The html output contains nested anchor tags if the TABLE OF CONTENTS > has a second level. > For example, see http://man.openbsd.org/mdoc > > The diff closes the anchor tag before printing the 'ul' of the second level. I think your patch is completely correct. I committed and installed the simplified version appended below. Thanks for your report, Ingo Log Message: --- In the TOC, close before opening . Simplified version of a bugfix patch from rapha@. Modified Files: -- mandoc: mdoc_html.c Revision Data - Index: mdoc_html.c === RCS file: /home/cvs/mandoc/mandoc/mdoc_html.c,v retrieving revision 1.318 retrieving revision 1.319 diff -Lmdoc_html.c -Lmdoc_html.c -u -p -r1.318 -r1.319 --- mdoc_html.c +++ mdoc_html.c @@ -534,9 +534,10 @@ mdoc_sh_pre(MDOC_ARGS) for (sn = n; sn != NULL; sn = sn->next) { tsec = print_otag(h, TAG_LI, ""); id = html_make_id(sn->head, 0); - print_otag(h, TAG_A, "hR", id); + tsub = print_otag(h, TAG_A, "hR", id); free(id); print_mdoc_nodelist(meta, sn->head->child, h); + print_tagq(h, tsub); tsub = NULL; for (subn = sn->body->child; subn != NULL; subn = subn->next) {
Re: mandoc -T html default style
Ingo Schwarze wrote: > What about making -O style= *compulsory* unless "option style" is > defined in man.conf(5)? Just error out when no style sheet is > configured? That can be combined with inlining the full set of > rules when -O style=inline is explicitly specified. This seems unnecessarily user hostile. Like we have failed to reach a decision, so push it to the user. But at times I do value explicit options over implicit defaults, so it's not without merit. I think it will annoy me, but if I can't convince you my preferred default is best, then maybe this is the way to go. Nobody will be surprised or disappointed with the output at least.
MPLS pseudowire over IPv6 1/2: ifconfig(8) diff
Allow the mpw(4) interface to establish VPLS tunnel over an IPv6-only MPLS core. This is the ifconfig(8) bit providing display and configuration of IPv6 neighbor on mpw(4) interface. pe1# ifconfig mpw0 mpw0: flags=51 mtu 1500 index 7 priority 0 llprio 3 encapsulation-type ethernet, control-word mpls label: local 16 remote 16 neighbor: 2001:db8:ff::e2 groups: mpw Index: ifconfig.8 === RCS file: /cvs/src/sbin/ifconfig/ifconfig.8,v retrieving revision 1.324 diff -u -p -r1.324 ifconfig.8 --- ifconfig.8 16 Nov 2018 12:25:29 - 1.324 +++ ifconfig.8 22 Dec 2018 15:55:01 - @@ -1344,7 +1344,7 @@ is another 20-bit number which will be u Sets the destination address where this mpw should output. The .Ar dest-address -is an IPv4 address that will be used to find the nexthop in the MPLS +is an IPv4 or IPv6 address that will be used to find the nexthop in the MPLS network. .El .Sh PAIR Index: ifconfig.c === RCS file: /cvs/src/sbin/ifconfig/ifconfig.c,v retrieving revision 1.387 diff -u -p -r1.387 ifconfig.c --- ifconfig.c 29 Nov 2018 00:12:34 - 1.387 +++ ifconfig.c 22 Dec 2018 15:55:02 - @@ -3803,7 +3803,9 @@ void mpw_status(void) { struct sockaddr_in *sin; + struct sockaddr_in6 *sin6; struct ifmpwreq imr; + char hbuf[NI_MAXHOST]; bzero(&imr, sizeof(imr)); ifr.ifr_data = (caddr_t) &imr; @@ -3842,11 +3844,22 @@ mpw_status(void) else printf("remote %u\n", imr.imr_rshim.shim_label); - sin = (struct sockaddr_in *) &imr.imr_nexthop; - if (sin->sin_addr.s_addr == 0) - printf("\tneighbor: none\n"); - else - printf("\tneighbor: %s\n", inet_ntoa(sin->sin_addr)); + printf("\tneighbor: "); + switch (imr.imr_nexthop.ss_family) { + case AF_INET6: + sin6 = (struct sockaddr_in6 *) &imr.imr_nexthop; + if (getnameinfo((struct sockaddr *)sin6, sin6->sin6_len, + hbuf, sizeof(hbuf), NULL, 0, NI_NUMERICHOST) != 0) + strlcpy(hbuf, "???", sizeof(hbuf)); + printf("%s\n", hbuf); + break; + case AF_INET: + sin = (struct sockaddr_in *) &imr.imr_nexthop; + printf("%s\n", inet_ntoa(sin->sin_addr)); + break; + default: + printf("none\n"); + } } /* ARGSUSED */ @@ -3870,6 +3883,7 @@ void process_mpw_commands(void) { struct sockaddr_in *sin, *sinn; + struct sockaddr_in6 *sin6, *sin6n; struct ifmpwreq imr; if (wconfig == 0) @@ -3899,14 +3913,29 @@ process_mpw_commands(void) imrsave.imr_rshim.shim_label = imr.imr_rshim.shim_label; } - sin = (struct sockaddr_in *) &imrsave.imr_nexthop; - sinn = (struct sockaddr_in *) &imr.imr_nexthop; - if (sin->sin_addr.s_addr == 0) { - if (sinn->sin_addr.s_addr == 0) + switch (imrsave.imr_nexthop.ss_family) { + case AF_INET6: + case AF_INET: + /* neighbor was set earlier, nothing to do */ + break; + default: + switch (imr.imr_nexthop.ss_family) { + case AF_INET6: + sin6 = (struct sockaddr_in6 *) &imrsave.imr_nexthop; + sin6n = (struct sockaddr_in6 *) &imr.imr_nexthop; + sin6->sin6_family = sin6n->sin6_family; + memcpy(&sin6->sin6_addr, &sin6n->sin6_addr, + sizeof(struct in6_addr)); + break; + case AF_INET: + sin = (struct sockaddr_in *) &imrsave.imr_nexthop; + sinn = (struct sockaddr_in *) &imr.imr_nexthop; + sin->sin_family = sinn->sin_family; + sin->sin_addr.s_addr = sinn->sin_addr.s_addr; + break; + default: errx(1, "mpw neighbor address not specified"); - - sin->sin_family = sinn->sin_family; - sin->sin_addr.s_addr = sinn->sin_addr.s_addr; + } } ifr.ifr_data = (caddr_t) &imrsave; @@ -3949,14 +3978,41 @@ void setmpwneighbor(const char *value, int d) { struct sockaddr_in *sin; + struct sockaddr_in6 *sin6; + struct addrinfo hints, *res; + int rv; wconfig = 1; - sin = (struct sockaddr_in *) &imrsave.imr_nexthop; - if (inet_aton(value, &sin->sin_addr) == 0) + memset(&hints, 0, sizeof(hints)); + hints.ai_family = AF_UNSPEC; + hints.ai_socktype = SOCK_DGRAM; + hints.ai_protocol = 0; + hints.ai_flags = AI_PASSIVE; + + rv = getaddrinfo(value, NULL, &hints, &res); + if (rv != 0) + errx(1,
MPLS pseudowire over IPv6 2/2: mpw(4) diff
Allow the mpw(4) interface to establish VPLS tunnel over an IPv6-only MPLS core. This is the mpw(4) bit. It requires the kernel diff from https://marc.info/?l=openbsd-tech&m=154513171617201&w=2 to avoid panic. --- pe1# cat /etc/ldpd.conf router-id 10.1.1.1 address-family ipv6 { interface vio2 interface vio1 transport-address 2001:db8:ff::e1 } l2vpn CUSTOMER type vpls { bridge bridge0 interface vio0 pseudowire mpw0 { pw-id 100 neighbor-addr 2001:db8:ff::e2 neighbor-id 10.2.2.2 } } --- pe1# ifconfig mpw0 mpw0: flags=51 mtu 1500 index 7 priority 0 llprio 3 encapsulation-type ethernet, control-word mpls label: local 16 remote 16 neighbor: 2001:db8:ff::e2 groups: mpw --- p1# netstat -nr Routing tables Internet: DestinationGatewayFlags Refs Use Mtu Prio Iface 10.255.255.1 10.255.255.1 UHl00 32768 1 lo0 Internet6: DestinationGatewayFlags Refs Use Mtu Prio Iface ::/96 ::1UGRS 0 0 32768 8 lo0 ::1::1UHhl 14 28 32768 1 lo0 :::0.0.0.0/96 ::1UGRS 0 0 32768 8 lo0 2001:db8:1::/642001:db8:1::2 UCn0 0 - 4 vio0 2001:db8:1::/64link#1 UC 0 0 -32 vio0 2001:db8:1::2 fe:e1:bb:d1:b1:96 UHLl 0 21 - 1 vio0 2001:db8:2::/642001:db8:2::2 UCn0 0 - 4 vio1 2001:db8:2::/64link#2 UC 0 0 -32 vio1 2001:db8:2::2 fe:e1:bb:d2:64:cd UHLl 0 54 - 1 vio1 2001:db8:3::/64fe80::fc50:3574:f600:b3d3%vio0 UG 0 0 -32 vio0 2001:db8:4::/64fe80::fc50:3574:f600:b3d3%vio0 UGPT 0 0 -32 vio0 2001:db8:4::/64fe80::823a:1629:36a5:de3%vio1 UGPT 0 0 -32 vio1 2001:db8:5::/64fe80::823a:1629:36a5:de3%vio1 UG 0 0 -32 vio1 2001:db8:ff::1 2001:db8:ff::1 UHl0 191 32768 1 lo0 2001:db8:ff::2 fe80::fc50:3574:f600:b3d3%vio0 UGHT 0 0 -32 vio0 2001:db8:ff::3 fe80::823a:1629:36a5:de3%vio1 UGHT 0 0 -32 vio1 2001:db8:ff::e1fe80::fc50:3574:f600:b3d3%vio0 UGH1 3 -32 vio0 2001:db8:ff::e2fe80::823a:1629:36a5:de3%vio1 UGH1 1 -32 vio1 2002::/24 ::1UGRS 0 0 32768 8 lo0 2002:7f00::/24 ::1UGRS 0 0 32768 8 lo0 2002:e000::/20 ::1UGRS 0 0 32768 8 lo0 2002:ff00::/24 ::1UGRS 0 0 32768 8 lo0 fe80::/10 ::1UGRS 0 2 32768 8 lo0 fec0::/10 ::1UGRS 0 0 32768 8 lo0 fe80::%vio0/64 fe80::be6c:60bc:74f0:eee9%vio0 UCn1 2 - 4 vio0 fe80::be6c:60bc:74f0:eee9%vio0 fe:e1:bb:d1:b1:96 UHLl 0 123 - 1 vio0 fe80::fc50:3574:f600:b3d3%vio0 fe:e1:bb:d2:e8:90 UHLch 9 921 - 3 vio0 fe80::%vio1/64 fe80::3022:e716:7dd9:db87%vio1 UCn1 2 - 4 vio1 fe80::3022:e716:7dd9:db87%vio1 fe:e1:bb:d2:64:cd UHLl 0 113 - 1 vio1 fe80::823a:1629:36a5:de3%vio1 fe:e1:bb:d2:18:7c UHLch 8 405 - 3 vio1 fe80::1%lo0fe80::1%lo0UHl0 0 32768 1 lo0 ff01::/16 ::1UGRS 0 2 32768 8 lo0 ff01::%vio0/32 fe80::be6c:60bc:74f0:eee9%vio0 Um 0 1 - 4 vio0 ff01::%vio1/32 fe80::3022:e716:7dd9:db87%vio1 Um 0 1 - 4 vio1 ff01::%lo0/32 fe80::1%lo0Um 0 2 32768 4 lo0 ff02::/16 ::1UGRS 0 2 32768 8 lo0 ff02::%vio0/32 fe80::be6c:60bc:74f0:eee9%vio0 Um 0 1 -
mandoc -T html -O toc, nested anchor tags
The html output contains nested anchor tags if the TABLE OF CONTENTS has a second level. For example, see http://man.openbsd.org/mdoc The diff closes the anchor tag before printing the 'ul' of the second level. Index: mdoc_html.c === RCS file: /cvs/src/usr.bin/mandoc/mdoc_html.c,v retrieving revision 1.193 diff -u -p -u -p -r1.193 mdoc_html.c --- mdoc_html.c 15 Dec 2018 23:33:20 - 1.193 +++ mdoc_html.c 22 Dec 2018 14:26:09 - @@ -507,7 +507,7 @@ static int mdoc_sh_pre(MDOC_ARGS) { struct roff_node*sn, *subn; - struct tag *t, *tsec, *tsub; + struct tag *t, *ta, *tsec, *tsub; char*id; int sc; @@ -532,7 +532,7 @@ mdoc_sh_pre(MDOC_ARGS) for (sn = n; sn != NULL; sn = sn->next) { tsec = print_otag(h, TAG_LI, ""); id = html_make_id(sn->head, 0); - print_otag(h, TAG_A, "hR", id); + ta = print_otag(h, TAG_A, "hR", id); free(id); print_mdoc_nodelist(meta, sn->head->child, h); tsub = NULL; @@ -543,9 +543,11 @@ mdoc_sh_pre(MDOC_ARGS) id = html_make_id(subn->head, 0); if (id == NULL) continue; - if (tsub == NULL) + if (tsub == NULL) { + print_tagq(h, ta); print_otag(h, TAG_UL, "c", "Bl-compact"); + } tsub = print_otag(h, TAG_LI, ""); print_otag(h, TAG_A, "hR", id); free(id);
Re: undocumented nfs mount option "intr"
On Fri, Dec 21, 2018 at 06:26:54PM +0100, Solene Rapenne wrote: > Otto Moerbeek wrote: > > On Thu, Dec 20, 2018 at 09:31:45AM +0100, Landry Breuil wrote: > > > > > On Thu, Dec 20, 2018 at 09:26:33AM +0100, Solene Rapenne wrote: > > > > Hi > > > > > > > > fstab(5) has an example for a nfs mountpoint using the "intr" option. > > > > > > > > That option isn't documented in mount(8) or mount_nfs(8) and in fact, > > > > I've not > > > > been able to find it anywhere. What is it doing? > > > > > > I think it's the fstab shortcut for -i option in mount_nfs(8). > > > > > > > Looking at mntopt mopts[] in mount_nfs.c there are way more nfs specifc > > options that are only documented as getopt flags and not as -o flags. > > > > -Otto > > would it be accepted to add the "named options" in mount_nfs(8), something > like this diff? > > this is a quick draft Yes, but list them all and keep 'm sorted, -Otto > > Index: mount_nfs.8 > === > RCS file: /data/cvs/src/sbin/mount_nfs/mount_nfs.8,v > retrieving revision 1.39 > diff -u -p -r1.39 mount_nfs.8 > --- mount_nfs.8 6 Jun 2009 20:58:50 - 1.39 > +++ mount_nfs.8 21 Dec 2018 17:24:53 - > @@ -163,6 +163,9 @@ Cache file attributes for at least > .Ar num > seconds. > The default is 5 seconds. > +.It Cm intr > +This option is equivalent as using the flag > +.Fl i . > .It Cm port Ns = Ns Ar portnumber > Use the specified port number for NFS requests. > The default is to query the portmapper for the NFS port.
Re: mandoc -T html default style
I just have to say that that I agree with Ingo 100%. There are just so many ways that html could be used besides just typical static manpage styles. inlining could be a good case, but only for a limited set of uses. I would really cringe at having to strip out inline CSS. Anyone who just prefers HTML versus a terminal or PDF style wouldn't care, but there are so many other possible uses that just don't match up with inline. I just don't see the harm in avoiding it. Striping out inline for 100 man pages is a really annoying task that can be so easily avoided. HTML is being evolved forward, for good or ill. I find it irritating, but that's what's happening anyway. Give us a better option and I'll support it. I just don't see one myself. It sucks, but we can't stop the horrors that are being pudhed upon us by others. Chris Bennett