OSDN Git Service
Rob Landley [Fri, 27 Nov 2015 03:16:12 +0000 (21:16 -0600)]
Split do_ps() into get_ps() and show_ps() as a start on implementing --sort.
Change readfileat() to pass back length of read.
Elliott Hughes [Fri, 13 Nov 2015 21:29:58 +0000 (13:29 -0800)]
Fix find -perm.
1) It read st_dev instead of st_mode.
2) It reversed the semantics of absolute vs minimal ('-' prefixed) tests.
Add tests for these, and move the "unterminated -exec" test into the "Still
fails" section because it's still dumping core for me.
Rob Landley [Mon, 16 Nov 2015 09:15:47 +0000 (03:15 -0600)]
Typo
Rob Landley [Mon, 16 Nov 2015 09:13:22 +0000 (03:13 -0600)]
Rewrite of the about page, re-triage of sbase, and other documentation updates.
Rob Landley [Sun, 15 Nov 2015 03:47:35 +0000 (21:47 -0600)]
Documentation tweaks.
Elliott Hughes [Wed, 11 Nov 2015 02:34:38 +0000 (18:34 -0800)]
Document %s in date(1).
Elliott Hughes [Wed, 11 Nov 2015 02:21:51 +0000 (18:21 -0800)]
Fix year parsing in date(1).
Four-digit years were being mangled by the code for two-digit years.
Move all the two-digit year code into the "we only saw two digits" case.
Add some new tests and fix existing tests.
Rob Landley [Tue, 10 Nov 2015 00:22:33 +0000 (18:22 -0600)]
Cleanup pass: inline find_tty_name(), bounds check fscanf(), use libc
functions to read major()/minor(), fix printf format warnings in error msg.
Elliott Hughes [Sat, 7 Nov 2015 19:29:36 +0000 (11:29 -0800)]
Make ps try harder to find a name for a tty.
Elliott Hughes [Sat, 7 Nov 2015 18:32:13 +0000 (10:32 -0800)]
On Android, ps' default output should match toolbox.
Elliott Hughes [Sat, 7 Nov 2015 18:18:32 +0000 (10:18 -0800)]
Add ps -n.
Both Android and GNU interpret -n to mean "show numeric users and groups",
despite what POSIX says.
Elliott Hughes [Sat, 7 Nov 2015 17:44:10 +0000 (09:44 -0800)]
Add ps -o CMDLINE.
This is equivalent to Android's historical "NAME" column, showing the
first element of /proc/pid/cmdline.
Rob Landley [Sun, 8 Nov 2015 22:47:52 +0000 (16:47 -0600)]
NOEXIT(thingy()) wrapper to turn xwrap() functions into warning versions.
Also WOULD_EXIT(x, thingy()) to set a variable to 1 or 0 showing whether or
not thingy() tried to exit. I'd love to be able to do "x = NOEXIT(thingy());"
but haven't figured out a syntax to make that work yet...
Rob Landley [Sun, 8 Nov 2015 08:44:59 +0000 (02:44 -0600)]
Route cleanup: whitespace and curly bracket changes.
Rob Landley [Sun, 8 Nov 2015 06:32:30 +0000 (00:32 -0600)]
Bugfix for route flags.
Rob Landley [Sun, 8 Nov 2015 06:20:42 +0000 (00:20 -0600)]
Remove TEST_ARGV() and logic to adjust irtt by "clock ticks/100" when clock ticks _is_ 100...
Rob Landley [Sun, 8 Nov 2015 04:19:37 +0000 (22:19 -0600)]
More route cleanup.
Rob Landley [Sat, 7 Nov 2015 07:06:55 +0000 (01:06 -0600)]
Let's start the route cleanup.
Collate some repeated increments, remove some useless coments.
Rob Landley [Thu, 5 Nov 2015 06:13:27 +0000 (00:13 -0600)]
Fix sed bug where any ] right after [ was skipped, not just first one in range.
Rob Landley [Wed, 4 Nov 2015 02:39:56 +0000 (20:39 -0600)]
dhcp leanup: remove flag_get() and flag_chk()
Rob Landley [Wed, 4 Nov 2015 01:33:22 +0000 (19:33 -0600)]
New dhcp6 command from Sameer Pradhan.
Rob Landley [Tue, 3 Nov 2015 11:30:08 +0000 (05:30 -0600)]
Version 0.6.1
Rob Landley [Tue, 3 Nov 2015 11:17:14 +0000 (05:17 -0600)]
Whitespace and parentheses.
Rob Landley [Mon, 2 Nov 2015 15:07:49 +0000 (09:07 -0600)]
Explain signals in oneit help text.
Rob Landley [Mon, 2 Nov 2015 14:32:21 +0000 (08:32 -0600)]
Don't pass target $CFLAGS to host builds (telling x86 compiler to be big-endian
seldom ends well). Instead add -DBUILD_FOR_HOST to $HOSTCC and wrap #ifdefs
around problematic (smack) includes from toys.h.
Rob Landley [Mon, 2 Nov 2015 13:56:13 +0000 (07:56 -0600)]
Add -P as short option for --ppid.
(The help infrastructure can collate and alphebetize short options,
long options haven't got a standardized help text format. Not a hard
requirement to have a short opt, but it's nice.)
Elliott Hughes [Sat, 31 Oct 2015 20:42:34 +0000 (13:42 -0700)]
Fix the ps -o CMD vs COMM distinction.
"comm" is the command name without arguments, and "cmd" the command
line including arguments. Confusingly, "command" is a synonym for
the *latter*, not the former.
This implementation of "comm" matches the GNU ps behavior where the
names are truncated, but Android historically used the full name
from /proc/pid/cmdline instead, so this patch isn't sufficient to
let us match the Android behavior.
Elliott Hughes [Sat, 31 Oct 2015 20:01:37 +0000 (13:01 -0700)]
Make ps -o error reporting intelligible.
I actually thought ps was segfaulting, and it wasn't until I was in gdb
that I even noticed there was an error message at all, and even then I
had to read the source to work out what it was trying to tell me.
Before:
$ ps -o user,pid,ppid,vsize,rss,nice,wchan,addr,unknown,stat,cmd
ps: -o 'user,pid,ppid,vsize,rss,nice,wchan,addr,unknown,stat,cmd'@41
USER PID PPID VSZ RSS NI WCHAN ADDR$
After:
$ ps -o user,pid,ppid,vsize,rss,nice,wchan,addr,unknown,stat,cmd
ps: bad -o field 'user,pid,ppid,vsize,rss,nice,wchan,addr,unknown,stat,cmd'
^
Rob Landley [Mon, 2 Nov 2015 07:34:58 +0000 (01:34 -0600)]
If chomp() needs to test it found \n, should also test it's at end of string.
Elliott Hughes [Sat, 31 Oct 2015 19:15:25 +0000 (12:15 -0700)]
Add ps -Z.
As with ls, it doesn't seem like -Z should be guarded behind LSM
availability. On a non-SELinux system, the label is always "unconfined".
Elliott Hughes [Sat, 31 Oct 2015 18:37:34 +0000 (11:37 -0700)]
Add ps --ppid.
Used by Android.
Rob Landley [Sun, 1 Nov 2015 11:43:03 +0000 (05:43 -0600)]
Last patch broke creating new file as a patch, fix it.
(Matches beginning and EOF at once.)
Rob Landley [Sun, 1 Nov 2015 09:06:17 +0000 (03:06 -0600)]
Fix applying patch hunks with trailing context to the start of the file.
Rob Landley [Sun, 1 Nov 2015 08:33:51 +0000 (02:33 -0600)]
Change grep -w to checking matches after the fact rather than modifing regex.
This lets '(x)\1' match, as reported by Isabella Parakiss.
Rob Landley [Sat, 31 Oct 2015 00:43:55 +0000 (19:43 -0500)]
Now that toybox is chmod -w, mv needs -f to overwrite it.
Rob Landley [Thu, 29 Oct 2015 12:34:08 +0000 (07:34 -0500)]
Tweak permissions of toybox binary.
Elliott Hughes [Wed, 28 Oct 2015 21:58:17 +0000 (14:58 -0700)]
Update Android section of roadmap.
Change-Id: I5a0f49b17bc5866689608e73af94b31744fd3dc9
Rob Landley [Thu, 29 Oct 2015 08:11:10 +0000 (03:11 -0500)]
Note Debian abandoning LSB and our own decision not to worry about LSB 5.0 yet.
Rob Landley [Thu, 29 Oct 2015 06:30:58 +0000 (01:30 -0500)]
Fix sed bug reported by Isabella Parakiss, where sed -e "/x/c\" -e "y" added
an extra newline because the test for whether we have an existing string to
append a newline to was checking if struct step had data appended to it,
and the /x/ regex is data appended to it. Change test to check for null
terminator at ->arg1 offset.
Rob Landley [Thu, 29 Oct 2015 04:31:30 +0000 (23:31 -0500)]
Oops, forgot to check in the header file change for ps.c.
Rob Landley [Thu, 29 Oct 2015 04:30:36 +0000 (23:30 -0500)]
Promote ps to posix.
Rob Landley [Thu, 29 Oct 2015 04:27:37 +0000 (23:27 -0500)]
Free more stuff in debug cleanup.
Tempted to convert the struct arg_list and ptr_len stuff to arrays and
make the parsing table driven, but there's enough direct usages of each
field it's not a net win.
Rob Landley [Thu, 29 Oct 2015 03:52:11 +0000 (22:52 -0500)]
Implement -suUgG and -o majfl,minfl, move uid/ruid/gid/rgid into slots[31-34]
and vmlck into slot[18], pass error message to comma_args(), collate -stuUgG
callbacks into parse_rest().
Rob Landley [Thu, 29 Oct 2015 02:41:45 +0000 (21:41 -0500)]
Tweak build instructions in README/code.html.
Rob Landley [Wed, 28 Oct 2015 04:57:08 +0000 (23:57 -0500)]
Use the /proc/self/fd/%d workaround for O_PATH not letting you read xattrs,
inspired by:
https://android-review.googlesource.com/#/c/152663/4/libc/bionic/fgetxattr.cpp
Rob Landley [Wed, 28 Oct 2015 04:12:48 +0000 (23:12 -0500)]
Fix ls error message for chmod -r directories.
Also, if you mkdir "$(echo -e "one\ntwo"); chmod -r one*; ls -q one*
it honors -q.
Rob Landley [Wed, 28 Oct 2015 02:47:24 +0000 (21:47 -0500)]
Install without a mode should use 0755, and check FLAG_preserve instead of
the global so "install -g 0" doesn't alias to "cp --preserve 0" and error out.
through to --preserve 0"
Rob Landley [Tue, 27 Oct 2015 10:58:19 +0000 (05:58 -0500)]
Replace xcount_cpus() with a call to sysconf(_SC_NPROCESSORS_CONF)
Rob Landley [Sun, 25 Oct 2015 21:50:03 +0000 (16:50 -0500)]
Add xcount_cpus()
Rob Landley [Sun, 25 Oct 2015 12:48:24 +0000 (07:48 -0500)]
Add comma_args() and factor out parse_o(), parse_t(), and parse_p() to use it.
Fix FLAG_w.
Rob Landley [Sun, 25 Oct 2015 11:33:21 +0000 (06:33 -0500)]
Factor out parse_o() and make -l -f and default output work on strings
rather than bitfields.
Rob Landley [Sun, 25 Oct 2015 10:39:04 +0000 (05:39 -0500)]
More ps work, and fill out remaining help text.
Fix more l/r justification, implement uname vsz vsize and stat.
Elliott Hughes [Fri, 23 Oct 2015 17:54:07 +0000 (10:54 -0700)]
Fix netstat build warnings.
Fixes two instances of "warning: use of logical '&&' with constant operand".
Change-Id: I2bb1ba4e389f8a9e54af8ee3ab23d8849fc329f0
Rob Landley [Fri, 23 Oct 2015 20:12:14 +0000 (15:12 -0500)]
More ps work: move l/r justification to widths[], add RUID/RGID, implement PGID,
plus tty detection fix from Elliott Hughes.
Yeongdeok Suh [Fri, 23 Oct 2015 08:03:57 +0000 (17:03 +0900)]
fix dhcpd warning
Elliott Hughes [Thu, 22 Oct 2015 23:35:33 +0000 (18:35 -0500)]
Auto-size df columns.
On Android, the filesystem column is pretty wide. Actually measure the widths.
Rob Landley [Wed, 21 Oct 2015 18:16:55 +0000 (13:16 -0500)]
Make ps.c whitespace consistent.
(Assignment has spaces around operator, comparison doesn't.)
Rob Landley [Wed, 21 Oct 2015 18:00:59 +0000 (13:00 -0500)]
ps: implement -t, remove leading 0 from ETIME days, implement -o GROUP,GID,PCPU
Rob Landley [Wed, 21 Oct 2015 04:35:06 +0000 (23:35 -0500)]
Move d/h units from %d %D output to default format string.
Rob Landley [Sun, 18 Oct 2015 00:53:02 +0000 (19:53 -0500)]
More ps work, tested up through etime now.
Rob Landley [Sat, 17 Oct 2015 03:55:11 +0000 (22:55 -0500)]
Fix ps display padding (truncation) and adjust -o pri by one.
Rob Landley [Thu, 15 Oct 2015 15:51:01 +0000 (10:51 -0500)]
More ps work, implement -p, correct several -o fields and general alignment.
Alejandro Joya [Wed, 14 Oct 2015 22:50:54 +0000 (17:50 -0500)]
make.sh: missing cflags for config2help
config2help might require extra parameters to be passed to the compiler.
For example it might need an additional header path.
Rob Landley [Mon, 12 Oct 2015 00:04:39 +0000 (19:04 -0500)]
Cleanup pass on pgrep: remove flag_twiddle macros, use 0 constants,
unify some TT.signame tests checking constant value variable initialized to.
Rob Landley [Sat, 10 Oct 2015 06:13:35 +0000 (01:13 -0500)]
"stat -c %T" support (filesystem type names) based on patch from Hyejin Kim.
Elliott Hughes [Tue, 6 Oct 2015 12:34:58 +0000 (07:34 -0500)]
Decode netlink sockets in lsof.
Refactor the /proc/net parsing so this only adds 7 lines overall.
Also clear the DEVICE field for sockets and fix alignment for long
usernames (until someone implements the two-pass output that measures
columns).
Elliott Hughes [Tue, 6 Oct 2015 12:19:28 +0000 (07:19 -0500)]
New command: flock.
The brillo folks wanted this in a shell script they're porting over
(so I've only implemented the fd style they wanted, not the named file
style).
Rob Landley [Tue, 6 Oct 2015 03:52:11 +0000 (22:52 -0500)]
Fix bug in od that screwed up position indicator on arm and mips.
Rob Landley [Tue, 6 Oct 2015 01:47:49 +0000 (20:47 -0500)]
Fix allnoconfig. (Exporting HOSTCC before HOSTCC?=cc caused a problem.)
Rob Landley [Sun, 4 Oct 2015 13:44:17 +0000 (08:44 -0500)]
Export makefile variables so you can say "make CROSS_COMPILE=blah-" as well as "CROSS_COMPILE=blah- make".
Rob Landley [Sun, 4 Oct 2015 11:45:08 +0000 (06:45 -0500)]
Minor cleanup and add "MODALIAS" handler (suggested by Isaac Dunham).
Rob Landley [Sat, 3 Oct 2015 17:15:39 +0000 (12:15 -0500)]
Back to chipping away at ps...
Rob Landley [Fri, 2 Oct 2015 12:50:57 +0000 (07:50 -0500)]
Add uClinux analysis to roadmap, and a few other pending changes.
Rob Landley [Tue, 29 Sep 2015 10:32:57 +0000 (05:32 -0500)]
help_exit() tweak.
Rob Landley [Tue, 29 Sep 2015 10:31:02 +0000 (05:31 -0500)]
xvfork went away.
Rob Landley [Tue, 29 Sep 2015 10:09:46 +0000 (05:09 -0500)]
Make defconfig build for nommu.
Adds XVFORK() macro, teaches xpopen_both() to call /proc/self/exe with NULL
argv (and converts cpio -p to use that), adds TOYBOX_FORK guards to some
unconverted commands.
Rob Landley [Sun, 27 Sep 2015 14:03:41 +0000 (09:03 -0500)]
Another chunk of nommu support, replacing toys.recursion with toys.stacktop.
Rob Landley [Thu, 24 Sep 2015 03:45:06 +0000 (22:45 -0500)]
xexec() is noreturn.
Rob Landley [Thu, 24 Sep 2015 03:18:22 +0000 (22:18 -0500)]
Add xvfork() as a static inline and use it from various places.
Note: vfork(), like fork(), can return -1 if too many processes, and
we should notice and fail loudly.
Rob Landley [Thu, 24 Sep 2015 03:10:23 +0000 (22:10 -0500)]
The -o /dev/null trick in probing isn't compatible with elf2flt, so use tempfile.
Rob Landley [Thu, 17 Sep 2015 06:49:48 +0000 (01:49 -0500)]
Fix a couple things gcc is too dumb to figure out on its own.
Daniel K. Levy [Mon, 14 Sep 2015 21:16:36 +0000 (16:16 -0500)]
Add find tests.
Rob Landley [Sat, 12 Sep 2015 20:46:46 +0000 (15:46 -0500)]
Fix a find segfault.
Elliott Hughes found a bug https://android-review.googlesource.com/#/c/170020/
and Daniel K. Levy worked out the problem: the user/group/newer arguments
to find weren't consuming their arguments when not checking the results of
their comparison (because an earlier test had already caused their
parenthetical group to fail). This confused the argument parsing logic
and could lead to segfaults.
I applied a different fix that reorganized the existing tests instead of
adding a new test. (Looks like a big commit but it's mostly whitespace
due to extra curly brackets changing indendentation levels.)
Rob Landley [Fri, 11 Sep 2015 21:35:14 +0000 (16:35 -0500)]
Replace toys.exithelp with help_exit() in lib.
Rob Landley [Wed, 9 Sep 2015 04:17:24 +0000 (23:17 -0500)]
Squish more warnings in pending.
Rob Landley [Wed, 9 Sep 2015 04:03:48 +0000 (23:03 -0500)]
Squish a warning in pending.
Elliott Hughes [Wed, 9 Sep 2015 03:52:21 +0000 (22:52 -0500)]
Fix netstat -e.
The -e flag should add "user" and "inode" columns to the TCP output.
Also truncate IP addresses in non-wide (no -W) mode.
This also removes a bit more of the duplication, though there's still
plenty left in this file!
Elliott Hughes [Wed, 9 Sep 2015 03:38:14 +0000 (22:38 -0500)]
i already did -l and -t, the positive side of -p, plus name filtering...
Elliott Hughes [Tue, 8 Sep 2015 15:39:07 +0000 (10:39 -0500)]
Fix netstat -p.
netstat -p was failing for any cmdline longer than 21 characters. (A
typical Chrome render process has about half a kilobyte of cmdline.)
There's still a lot of cleanup to be done later, but this is enough to
fix -p and remove a fair amount of unnecessary custom code into the
bargain.
Lipi Lee [Tue, 8 Sep 2015 10:37:00 +0000 (05:37 -0500)]
increase the size of progname to avoid buffer overflow
Rob Landley [Mon, 7 Sep 2015 22:12:57 +0000 (17:12 -0500)]
Remove prompt argument from yesno(), caller can fprintf(stderr, "blah") itself.
This fixes the build break, the change to yesno() prototype accidentally got
checked in last commit. (Oops, sorry.)
Rob Landley [Mon, 7 Sep 2015 01:10:04 +0000 (20:10 -0500)]
Switch HR_SI to HR_1000, make binary the default, make HR_B only affect bytes,
and update the tests.
Rob Landley [Sat, 5 Sep 2015 19:18:38 +0000 (14:18 -0500)]
Two large thinkos in oneit: -3 was always enabled and signal numbers were
overwritten before we set up signal handlers.
Rob Landley [Sat, 5 Sep 2015 10:46:35 +0000 (05:46 -0500)]
Add seq -f tests, tweak help text, and catch one more error case.
Elliott Hughes [Sat, 5 Sep 2015 10:09:22 +0000 (05:09 -0500)]
ls -h support.
It turns out that people are anticipating the switch to toybox ls from
toolbox ls on the assumption that this will finally bring -h support.
Let's not disappoint.
I've merged two existing buffers in listfiles whose uses didn't
overlap into one. It may be possible to cram this into toybuf with the
other stuff, but it didn't seem worth the extra complexity for 64B of
stack, especially since we were already living with that for time
formatting anyway.
Elliott Hughes [Sat, 5 Sep 2015 10:00:49 +0000 (05:00 -0500)]
df -h and -H.
This doesn't address the lack of support for a variable-width
"Filesystems" column, but it doesn't make the current situation any
worse either.
This is the last of the missing -h options. The other commands with -h
also have --si, but only for df did it get a corresponding short
option (and I've never personally used --si on du or ls, so let's wait
until someone actually cares).
Elliott Hughes [Fri, 4 Sep 2015 01:54:53 +0000 (20:54 -0500)]
Implement lsof.
This is a superset of the current AOSP lsof (which is itself a
superset of the lsof in Android M). It fixes several bugs/misfeatures
and adds support for decoding IPv4/IPv6 tcp/udp/raw sockets and Unix
domain sockets.
Rob Landley [Fri, 4 Sep 2015 01:36:44 +0000 (20:36 -0500)]
Make human_readable() handle base 1024 units without floating point.
Rounds correctly via brute force, displayed digits are decimal even when
working with powers of 2, shows at most 3 significant (decimal) digits.
(So no "1023M" nonsense, that's 1.0G.)
Rob Landley [Thu, 3 Sep 2015 01:09:42 +0000 (20:09 -0500)]
seq -f %0-f is a valid pattern.
Rob Landley [Thu, 3 Sep 2015 01:05:34 +0000 (20:05 -0500)]
If you start a git commit and then edit the file more on the filesystem
before saving, the updates don't go in the commit. Behavior difference
between git and mercurial, that.
Good to know.