aboutsummaryrefslogtreecommitdiff
path: root/lib/libulog
Commit message (Collapse)AuthorAgeFilesLines
* Revert r330897:Eitan Adler2018-03-295-10/+0
| | | | | | | | | | | | | | | | | | | | This was intended to be a non-functional change. It wasn't. The commit message was thus wrong. In addition it broke arm, and merged crypto related code. Revert with prejudice. This revert skips files touched in r316370 since that commit was since MFCed. This revert also skips files that require $FreeBSD$ property changes. Thank you to those who helped me get out of this mess including but not limited to gonzo, kevans, rgrimes. Requested by: gjb (re) Notes: svn path=/stable/11/; revision=331722
* Partial merge of the SPDX changesEitan Adler2018-03-145-0/+10
| | | | | | | | | | These changes are incomplete but are making it difficult to determine what other changes can/should be merged. No objections from: pfg Notes: svn path=/stable/11/; revision=330897
* MFC r312452-r312512:Enji Cooper2017-02-101-1/+1
| | | | | | | | | | | | | r312452-r312512: - Use SRCTOP-relative paths to other directories instead of .CURDIR-relative ones This simplifies pathing in make/displayed output - Use .CURDIR:H instead of .CURDIR to simplify pathing in output, etc Notes: svn path=/stable/11/; revision=313538
* First pass through library packaging.Glen Barber2016-02-041-0/+1
| | | | | | | Sponsored by: The FreeBSD Foundation Notes: svn path=/projects/release-pkg/; revision=295278
* META MODE: Prefer INSTALL=tools/install.sh to lessen the need for xinstall.host.Bryan Drewery2015-11-251-1/+0
| | | | | | | | | | | This both avoids some dependencies on xinstall.host and allows bootstrapping on older releases to work due to lack of at least 'install -l' support. Sponsored by: EMC / Isilon Storage Division Notes: svn path=/head/; revision=291307
* Revert r284417 it is not necessary anymoreBaptiste Daroussin2015-06-151-1/+1
| | | | Notes: svn path=/head/; revision=284421
* Enforce overwritting SHLIBDIRBaptiste Daroussin2015-06-151-1/+1
| | | | | | | | | | | | Since METAMODE has been added, sys.mk loads bsd.mkopt.mk which ends load loading bsd.own.mk which then defines SHLIBDIR before all the Makefile.inc everywhere. This makes /lib being populated again. Reported by: many Notes: svn path=/head/; revision=284417
* Add META_MODE support.Simon J. Gerraty2015-06-131-0/+20
|\ | | | | | | | | | | | | | | | | | | | | | | | | | | Off by default, build behaves normally. WITH_META_MODE we get auto objdir creation, the ability to start build from anywhere in the tree. Still need to add real targets under targets/ to build packages. Differential Revision: D2796 Reviewed by: brooks imp Notes: svn path=/head/; revision=284345
| * dirdeps.mk now sets DEP_RELDIRSimon J. Gerraty2015-06-081-2/+0
| | | | | | | | Notes: svn path=/projects/bmake/; revision=284172
| * Merge sync of headSimon J. Gerraty2015-05-271-2/+1
| |\ | |/ |/| | | Notes: svn path=/projects/bmake/; revision=283595
| * Merge head from 7/28Simon J. Gerraty2014-08-191-0/+1
| |\ | | | | | | | | | Notes: svn path=/projects/bmake/; revision=270164
| * | Updated dependenciesSimon J. Gerraty2014-05-161-1/+1
| | | | | | | | | | | | Notes: svn path=/projects/bmake/; revision=266219
| * | Updated dependenciesSimon J. Gerraty2014-05-101-0/+2
| | | | | | | | | | | | Notes: svn path=/projects/bmake/; revision=265802
| * | Merge from headSimon J. Gerraty2014-05-081-1/+1
| |\| | | | | | | | | | Notes: svn path=/projects/bmake/; revision=265720
| * | Updated dependenciesSimon J. Gerraty2013-03-111-0/+1
| | | | | | | | | | | | Notes: svn path=/projects/bmake/; revision=248169
| * | Updated dependenciesSimon J. Gerraty2013-02-161-2/+0
| | | | | | | | | | | | Notes: svn path=/projects/bmake/; revision=246868
| * | Updated/new Makefile.dependSimon J. Gerraty2012-11-081-0/+3
| | | | | | | | | | | | Notes: svn path=/projects/bmake/; revision=242788
| * | Sync FreeBSD's bmake branch with Juniper's internal bmake branch.Marcel Moolenaar2012-08-221-0/+17
| | | | | | | | | | | | | | | | | | | | | Requested by: Simon Gerraty <sjg@juniper.net> Notes: svn path=/projects/bmake/; revision=239572
* | | Convert libraries to use LIBADDBaptiste Daroussin2014-11-251-2/+1
| |/ |/| | | | | | | | | | | While here reduce a bit overlinking Notes: svn path=/head/; revision=275024
* | Use src.opts.mk in preference to bsd.own.mk except where we need stuffWarner Losh2014-05-061-1/+1
|/ | | | | | | from the latter. Notes: svn path=/head/; revision=265420
* Properly use SHA1_Final() instead of SHA_Final().Ed Schouten2012-04-191-1/+1
| | | | | | | | | | | In this case it doesn't really matter, as long as we turn a TTY name into a set of shuffled bytes. Still, for correctness we should use the proper function. MFC after: 2 weeks Notes: svn path=/head/; revision=234462
* Remove trailing whitespace per mdoc lint warningEitan Adler2012-03-291-1/+1
| | | | | | | | | | Disussed with: gavin No objection from: doc Approved by: joel MFC after: 3 days Notes: svn path=/head/; revision=233648
* Fix whitespace inconsistencies found in homegrown Symbol.maps.Ed Schouten2011-10-071-1/+1
| | | | Notes: svn path=/head/; revision=226111
* Fix reference to nonexistent manpage getuid(3).Ed Schouten2010-10-111-2/+2
| | | | | | | Submitted by: pluknet Notes: svn path=/head/; revision=213698
* mdoc: order prologue macros consistently by Dd/Dt/OsUlrich Spörlein2010-04-142-2/+2
| | | | | | | | | | | Although groff_mdoc(7) gives another impression, this is the ordering most widely used and also required by mdocml/mandoc. Reviewed by: ru Approved by: philip, ed (mentors) Notes: svn path=/head/; revision=206622
* Remove utmpx stub from libulog.Ed Schouten2010-01-1314-1029/+44
| | | | | | | | | | | | I'm not increasing the shlib major version for this, because not a single application outside the base system should have used these functions in such a short timespan. Rewrite ulog_login(3) and ulog_logout(3) to build on top of the utmpx implementation in libc. Notes: svn path=/head/; revision=202215
* Implement <utmpx.h>.Ed Schouten2010-01-131-7/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The utmpx interface is the standardized interface of the user accounting database. The standard only defines a subset of the functions that were present in System V-like systems. I'd like to highlight some of the traits my implementation has: - The standard allows the on-disk format to be different than the in-memory representation (struct utmpx). Most operating systems don't do this, but we do. This allows us to keep our ABI more stable, while giving us the opportunity to modify the on-disk format. It also allows us to use a common file format across different architectures (i.e. byte ordering). - Our implementation of pututxline() also updates wtmp and lastlog (now called utx.log and utx.lastlogin). This means the databases are more likely to be in sync. - Care must be taken that our implementation discard any fields that are not applicable. For example, our DEAD_PROCESS records do not hold a TTY name. Just a time stamp, a record identifier and a process identifier. It also guarantees that strings (ut_host, ut_line and ut_user) are null terminated. ut_id is obviously not null terminated, because it's not a string. - The API and its behaviour should be conformant to POSIX, but there may be things that slightly deviate from the standard. This implementation uses separate file descriptors when writing to the log files. It also doesn't use getutxid() to search for a field to overwrite. It uses an allocation strategy similar to getutxid(), but prevents DEAD_PROCESS records from accumulating. Make sure libulog doesn't overwrite the manpages shipped with our C library. Also keep the symbol list in Symbol.map sorted. I'll bump __FreeBSD_version later this evening. I first want to convert everything to <utmpx.h> and get rid of <utmp.h>. Notes: svn path=/head/; revision=202188
* Build lib/ with WARNS=6 by default.Ed Schouten2010-01-021-2/+0
| | | | | | | | | | | | Similar to libexec/, do the same with lib/. Make WARNS=6 the norm and lower it when needed. I'm setting WARNS?=0 for secure/. It seems secure/ includes the Makefile.inc provided by lib/. I'm not going to touch that directory. Most of the code there is contributed anyway. Notes: svn path=/head/; revision=201381
* Parse DEAD_PROCESS entries properly.Ed Schouten2009-12-271-1/+1
| | | | | | | | | The TTY line name should always be set for DEAD_PROCESS entries right now. When we parse a clean utmp entry, we don't want to interpret it as a DEAD_PROCESS entry if the TTY has never been used yet. Notes: svn path=/head/; revision=201064
* Several refinements to libulog's API.Ed Schouten2009-12-263-35/+50
| | | | | | | | | | | | - Only set the fields in the ulog_utmpx structure that are valid for the command in question. This means that strings like "shutdown" or "~" are not visible to the user anymore. - Rename UTXF_* to UTXI_*, indicating the indexation, instead of using the `antique' filename. If we ever get rid of utmp, it makes little sense calling it by its old name. Notes: svn path=/head/; revision=201033
* Don't corrupt logout entries in utmp files.Ed Schouten2009-12-251-1/+1
| | | | | | | | | | An older version of the code used a structure on the stack, instead of a pointer to the structure. It looks like I didn't adjust the parameters of the write(2) call, causing the first four/eight bytes of the entry to be corrupted, instead of writing the entire entry to disk. Notes: svn path=/head/; revision=200996
* The hostname passed to ulog_login(3) may be optional.Ed Schouten2009-12-111-1/+2
| | | | | | | | | | Don't trip on a null pointer being passed to this function when performing a local login. Noticed by: dougb Notes: svn path=/head/; revision=200421
* Install libulog in /lib.Ed Schouten2009-12-071-0/+2
| | | | | | | | | | | | Because several applications in /bin use libulog (or may use it in the nearby future), it must not live inside /usr. It seems like we don't need to add the copy from /usr/lib to ObsoleteFiles.inc, because it's cleaned up during installation of libulog automatically. Reported by: ume Notes: svn path=/head/; revision=200203
* Add a libutempter compatibility interface to libulog.Ed Schouten2009-12-065-4/+263
| | | | | | | | | | | | | | | | | | The ulog_login_pseudo(3) and ulog_logout_pseudo(3) interfaces provide a functionality identical to what libutempter has to offer. Just transform libutempter's calls into the before mentioned functions. libutempter doesn't work with utmpx, so instead of fixing I thought the easiest way would be to integrate this functionality. libutempter is used by applications like xterm and the KDE libraries, so if I ever change the underlying file format, these applications will keep working automatically. Also increase __FreeBSD_version to indicate the addition (as well as the import of libulog). Notes: svn path=/head/; revision=200185
* Massively extend libulog:Ed Schouten2009-12-0511-158/+736
| | | | | | | | | | | | | | | | | - Just like struct utmp, store strings inside struct utmpx itself. This is needed to make things like pututxline() work. - Add ut_id and ut_pid fields, even though they have little use in our implementation. - It turns out our "reboot" wtmp entries indicate a system boot, so remove REBOOT_TIME - Implement getutxline() and pututxline - Add getutxuser() and setutxfile(), which allows us to crawl wtmp and lastlog files as well. - Add _ULOG_POSIX_NAMES, so we can already use the POSIX names if we really want to. Notes: svn path=/head/; revision=200153
* Use USER_PROCESS instead of LOGIN_PROCESS.Ed Schouten2009-12-033-6/+6
| | | | | | | | | POSIX isn't clear about how the fields should be used, but according to utmpx(5) on Linux, LOGIN_PROCESS refers to a TTY that's still running a getty. Notes: svn path=/head/; revision=200067
* Also implement ut_type.Ed Schouten2009-12-033-0/+52
| | | | | | | | I thought we couldn't emulate this field, but we can derive this field by looking at special values for ut_host, ut_line and ut_name. Notes: svn path=/head/; revision=200065
* Add a new library: libulog.Ed Schouten2009-12-039-0/+691
One of the things I really want to do, is to get rid of the limitations of our current utmp(5) mechanism: - It only allows 8 byte TTY device names. - The hostname only allows 16 bytes of storage. I'm not a big fan of <utmpx.h>, but I think we should at least try to add parts of it. Unfortunately we cannot implement <utmpx.h>, because we miss various fields, such as ut_id, ut_pid, etc. The API provided by libulog shares some similarities with <utmpx.h>, so it shouldn't be too hard to port these applications eventually. In most simple cases, it should just be a matter of removing the ulog_ prefix everywhere. As a bonus, it also implements a function called ulog_login_pseudo(), which allows unprivileged applications to write log entries, provided they have a valid file descriptor to a pseudo-terminal master device. libulog will allow a smoother transition to a new file format by adding a library interface to deal with utmp/wtmp/lastlog files. I initially thought about adding the functionality to libutil, but because I'm not planning on keeping this library around forever, we'd better keep it separated. Next items on the todo list: 1. Port applications in the base system (and ports) to libulog, instead of letting them use <utmp.h>. 2. Remove <utmp.h>, implement <utmpx.h> and reimplement this library on top. 3. Port as many applications as possible back to <utmpx.h>. Notes: svn path=/head/; revision=200062