summaryrefslogtreecommitdiff
path: root/sysutils/blimitd/files/extra-patch-utmpx
diff options
context:
space:
mode:
Diffstat (limited to 'sysutils/blimitd/files/extra-patch-utmpx')
-rw-r--r--sysutils/blimitd/files/extra-patch-utmpx71
1 files changed, 0 insertions, 71 deletions
diff --git a/sysutils/blimitd/files/extra-patch-utmpx b/sysutils/blimitd/files/extra-patch-utmpx
deleted file mode 100644
index a6bd694a4622..000000000000
--- a/sysutils/blimitd/files/extra-patch-utmpx
+++ /dev/null
@@ -1,71 +0,0 @@
---- blimitd.c
-+++ blimitd.c
-@@ -15,7 +15,7 @@
- #include <sysexits.h>
- #include <syslog.h>
- #include <unistd.h>
--#include <utmp.h>
-+#include <utmpx.h>
-
- #include "blimitd.h"
- #include "config.h"
-@@ -35,7 +35,7 @@
- pid_t pid;
- char *name;
- FILE *utmp_fh;
-- struct utmp utmp_record;
-+ struct utmpx *utmp_record;
- struct passwd *pw;
- struct user_instance ui;
-
-@@ -115,23 +115,19 @@
-
- /* actually do stuff */
- while (sig_no == 0) {
-- /* get the logged in users */
-- if ((utmp_fh = fopen(_PATH_UTMP, "r")) == NULL) {
-- syslog(LOG_ERR, "failed to open %s for reading: %m", _PATH_UTMP);
-- continue;
-- }
- /* prepare for pw access */
- if (! setpassent(1)) {
- syslog(LOG_ERR, "setpassent: %m");
- }
- /* for each entry */
-- while (fread(&utmp_record, sizeof(utmp_record), 1, utmp_fh)) {
-- if (utmp_record.ut_name[0] == '\0') {
-+ setutxent();
-+ while ((utmp_record = getutxent()) != NULL) {
-+ if (utmp_record->ut_type != USER_PROCESS) {
- /* this entry has been removed */
- continue;
- }
- /* get their name in a char *\0 */
-- if ((name = strndup(utmp_record.ut_name, UT_NAMESIZE)) == NULL) {
-+ if ((name = strndup(utmp_record->ut_user, sizeof utmp_record->ut_user)) == NULL) {
- syslog(LOG_ERR, "strndup failed: %m");
- continue;
- }
-@@ -150,7 +146,7 @@
-
- /* initialise ui for passing to enforcement functions */
- ui.pw = pw;
-- if ((ui.tty = find_tty(utmp_record.ut_line, UT_LINESIZE)) == NULL) {
-+ if ((ui.tty = find_tty(utmp_record->ut_line, sizeof utmp_record->ut_line)) == NULL) {
- syslog(LOG_ERR, "find_tty failed: %m");
- continue;
- }
-@@ -163,12 +159,7 @@
- free(ui.tty);
- }
-
-- if (ferror(utmp_fh)) {
-- syslog(LOG_ERR, "error reading from %s: %m", _PATH_UTMP);
-- }
-- if (fclose(utmp_fh) != 0) {
-- syslog(LOG_ERR, "error closing %s: %m", _PATH_UTMP);
-- }
-+ endutxent();
-
- /* finished with the password database till next time */
- endpwent();