summaryrefslogtreecommitdiff
path: root/main.c
AgeCommit message (Collapse)AuthorFilesLines
2016-03-17Revert back to upstream 0.6.0 and remove all except for dhcp relatedsubmit/tizen/20160323.053424Yu Jiung1-4/+1
Change-Id: Ide839cfefc7c4049715f86a2bf769c333175b2bf
2015-08-06Make multiplexer's "command not found" exit 127.Rob Landley1-1/+4
Somebody (carsonh on freenode) objected that they were running something like "toybox test 1 == 2" and couldn't distinguish the test failing from toybox not having the test command. Why they were running toybox out of the multiplexer instead of having a test symlink in the $PATH, I couldn't tell you. (Is "I know toybox is on this system, but don't know how it was configured" a problem people actually have?) *shrug* They care about it more than I do, so now you can't distinguish between the multiplexer not being found and the command the multiplexer tried to run not being found. Progress!
2015-07-19Tweak version number.Rob Landley1-1/+1
2015-05-03Replace android-specific hack with just signal(SIGPIPE, SIG_IGN).Rob Landley1-8/+2
2015-04-30Add default sigpipe handler for android (as suggested by Elliott Hughes).Rob Landley1-0/+9
2015-04-17Make toybox --version use the "git describe" info if it's available.Rob Landley1-0/+2
2015-04-07Adding --version broke ./toybox command list. (Oops.)Rob Landley1-2/+5
2015-04-05Add --version to multiplexer.Rob Landley1-5/+5
Can't think of a better place to stick the actual version info than a #define at the top of main. Makefile and toys.h are equally awkward, querying git tags wouldn't work if building a release tarball... watch me forget to update this when cutting a release.
2015-03-06The "no }" error with find | xargs sed is because toy_init() wasn't blanking ↵Rob Landley1-0/+1
the GLOBALS() block on a recursive call. (How that ever worked...)
2015-02-15Only discard optargs in toy_exec() after finding the command to run ↵Rob Landley1-3/+3
(otherwise the fallback exevp() segfaults).
2015-02-07Make toy_exec() check if argc is in optargs and deal with it there so we ↵Rob Landley1-0/+3
don't need a separate xexec_optargs().
2015-01-18Remove trailing whitespace.Rob Landley1-1/+1
2015-01-03Move fflush() checking to xexit() and have exit paths in main() call that.Rob Landley1-3/+1
2014-12-31Redo option parsing infrastructure so #define FORCE_FLAGS can unzero flag ↵Rob Landley1-2/+3
macros for a disabled command (needed when multiple commands share infrastructure with a common set of flags). This means the flag space is no longer packed, but leaves gaps where the zeroes go. (Actual flag bit positions are the same for all configs.) Since the option parsing needs to know where the holes are, the OPTSTR values are now generated as part of flags.h with ascii 1 values for the disabled values. (So generated/oldflags.h went away.) This also means that the option string argument for OLDTOY() went away, it now uses the same arguments as the NEWTOY() it references.
2014-11-29The "re-exec to regain root permissions" logic broke the error message when ↵Rob Landley1-1/+1
calling root-only commands through the multiplexer. It would say "no such command" when it should say "not root".
2014-10-26Cosmetic tweak: no trailing spaces when ./toybox lists command names.Rob Landley1-5/+3
2014-09-27Don't segfault for --help of single.sh build of OLDTOY commands that use ↵Rob Landley1-1/+3
another command's help.
2014-09-20Always call setlocale if I18N is enabled, so nested toy_exec() can switch it ↵Rob Landley1-1/+1
back off if necessary.
2014-09-09Two problems: 1) Sometimes toy_exec() needs to re-exec to gain dropped root ↵Rob Landley1-1/+7
permissions, 2) shouldn't recurse forever without exec, stack depth increases and we may leak other resources. Limit it to ~5 levels.
2014-08-31Give a hint when setuid logic fails.Rob Landley1-2/+4
Toybox expects to be setuid root; setuid some other user confuses the attempt to drop privileges, and we err on the side of avoiding shenanigans.
2014-06-21Forgot to check in main() part of TOYFLAG_LOCALE change.Rob Landley1-2/+2
2014-06-11Move toys.toycount initialization _after_ zeroing toys, so help -a works again.Rob Landley1-2/+1
2014-05-24The "not root" test happens before looking for --help, so "./sulogin --help" ↵Rob Landley1-1/+4
doesn't show it. Instead make the "not root" failure case always show help text.
2014-05-21Add generic_signal() handler, which sets toys.signal and writes byte to ↵Rob Landley1-0/+1
toys.signalfd if set.
2014-04-01bugfix: the multiplexer increments optc and then the command the multiplexer ↵Rob Landley1-0/+1
runs increments it further, resulting in a wrong count. Fix: zero it.
2014-03-28Add help -a (to show all commands) and -h (to produce HTML output).Rob Landley1-0/+2
2013-12-23Fix some issues raised (albeit indirectly) by Isaac Dunham.Rob Landley1-1/+2
POLL_IN defined as a constant by some libc. Factor out login.c's change_identity() to xwrap.c as xsetuser(). Replace xsetuid() with xsetuser() Put a space between argument globals and non-argument globals. TT starts zeroed, don't need to re-zero entries in it. STDIN_FILENO has been 0 since 1969, even DOS copied that. Just say 0. Added an xchroot() using xchdir() to lib/xwrap.c. Remove endgrent() call until somebody can explain why it was there.
2013-12-19Don't permute toys.optargs, cleanup code (xexec()) can free it.Rob Landley1-1/+1
2013-09-03Introduce libbuf analogous to toybuf but for use by lib/*.c. Change ↵Rob Landley1-1/+1
readfile() semantics to be able to read into an existing buffer, or malloc its own if that's NULL.
2013-08-30Add scripts/single.sh to build individual non-multiplexed standalone commands.Rob Landley1-1/+1
Alas, you can't quite do this yet: make defconfig make for i in $(./toybox) do echo $i PREFIX=singles/ scripts/single.sh $i || break done Because the OLDTOY() aliases for commands won't build without the base command. And I can't just skip them because chown/chmod or mv/cp aren't the same thing.
2013-08-21Fix --help option to multiplexer.Rob Landley1-11/+5
2013-07-19Start of TOYBOX_SINGLE support, for building standalone commands with no ↵Rob Landley1-22/+37
multiplexer.
2013-06-30Add config option for --help support in all commands.Rob Landley1-2/+8
2013-05-08Add --help option to toybox command when TOYBOX_HELP is enabled.Rob Landley1-4/+12
2013-04-21Fix some comments from way back when toybox first started (in 2006), when I ↵Rob Landley1-3/+3
was still cleaning busybox-isms out of my head...
2013-01-05Use basename() where appropriate.Rob Landley1-10/+2
2012-12-27TOYBOX_DEBUG warns about lack of suid bit when running a STAYROOT command, ↵Rob Landley1-1/+2
but it shouldn't warn just because the multiplexer command "toybox" is stayroot.
2012-12-23Elie De Brauwer pointed out that xputs() isn't reliably reporting errors ↵Rob Landley1-0/+1
because there's no flush. Rather than change the output granularity, flush before exit and check errors there. (We still need xputc() doing it so "yes" doesn't continue forever.)
2012-11-26Cleanup i18n support (#ifdefectomy, move global init to process launch). ↵Rob Landley1-3/+2
Teach make.sh to emit "#define FLAG_x 0" for options inside disabled USE macros so we can unconditionally refer to them.
2012-11-21Make internalization support optionalFelix Janda1-0/+3
2012-11-18Init global context to toybox multiplexer early so error_exit() doesn't ↵Rob Landley1-2/+2
segfault trying to print current command name, and change TOYBOX_DEBUG+TOYBOX_SUID complaint about not having the suid bit set to warning rather than exit..
2012-11-16Set optc when optstring NULL.Rob Landley1-1/+4
2012-11-16Add rebound support to intercept error_exit() and longjmp instead.Rob Landley1-2/+2
2012-11-13Reindent to two spaces per level. Remove vi: directives that haven't worked ↵Rob Landley1-86/+83
right in years (ubuntu broke its' vim implementation). Remove trailing spaces. Add/remove blank lines. Re-wordwrap in places. Update documentation with new coding style. The actual code should be the same afterward, this is just cosmetic refactoring.
2012-08-14Replace TOY_LIST_LEN with more generic ARRAY_LEN()Rob Landley1-5/+4
2012-07-23Workaround longstanding glibc/ld bug, ala ↵0.4.0Rob Landley1-2/+2
http://sources.redhat.com/bugzilla/show_bug.cgi?id=3400, which prevents "./toybox | wc" from producing any output when toybox was statically linked.
2012-02-18Nathan McSween convinced me compilers that inline memset() can optimize the ↵Rob Landley1-1/+1
bzero case pretty well.
2012-02-08Switch from deprecated function to gratuitously renamed identical ↵Rob Landley1-1/+1
non-depricated function. *shrug*
2012-01-14Expand comments.Rob Landley1-4/+13
2010-01-06Make toy_init() reentrant, or else xexec() has funky errors.Rob Landley1-2/+4