[Toybox] [PATCH] ping: print ttl
Rob Landley
rob at landley.net
Mon Mar 2 16:12:00 PST 2020
On 2/28/20 9:45 AM, anatasluo wrote:
> Signed-off-by: anatasluo <luolongjuna at gmail.com>
> ---
> lib/lib.h | 2 ++
> lib/net.c | 22 ++++++++++++++++++++++
> toys/net/ping.c | 40 +++++++++++++++++++++++++++++++++-------
> 3 files changed, 57 insertions(+), 7 deletions(-)
Sorry for the delay, I've been trying to see if there's a way to do this
_without_ using an iovec to read the data. (Which means I'm reading the kernel
code implementing it, among the half-dozen other things I'm currently juggling...)
But I did want to point out:
> - xsetsockopt(TT.sock, SOL_SOCKET, SO_MARK, &len, 4);
> + xsetsockopt(TT.sock, SOL_SOCKET, SO_MARK, &len, sizeof(len));
> }
LP64 is a standard introduced during the 32->64 bit transition somewhere around
Y2 that says sizeof(char) = 1, sizeof(short) = 2, sizeof(int) = 3, and
sizeof(long) == sizeof(pointer), and sizeof(long long) is "at least" 64 bits (in
practice always exactly 8 bytes, but they should _specify_).
Linux, BSD, MacOSX, iOS, and Android all adhere to this standard. Windows does
_not_ (they went with LLP64 instead) for insane legacy reasons described... darn
it, the downside of discussing 20 year old things is all the pointers moved. I
should update the links on the design.html page, but here's Microsoft's insane
legacy reasons for going with LLP64 for the Win64 API:
https://devblogs.microsoft.com/oldnewthing/20050131-00/?p=36563
Here, I just updated the design.html section to use archive.org for the unix.org
links:
http://landley.net/toybox/design.html#bits
Rob
More information about the Toybox
mailing list