diff options
Diffstat (limited to 'net/kdenetwork3/files/extrapatch-find_user.cpp')
-rw-r--r-- | net/kdenetwork3/files/extrapatch-find_user.cpp | 67 |
1 files changed, 0 insertions, 67 deletions
diff --git a/net/kdenetwork3/files/extrapatch-find_user.cpp b/net/kdenetwork3/files/extrapatch-find_user.cpp deleted file mode 100644 index c06f544b86ce..000000000000 --- a/net/kdenetwork3/files/extrapatch-find_user.cpp +++ /dev/null @@ -1,67 +0,0 @@ ---- ktalkd/ktalkd/find_user.cpp -+++ ktalkd/ktalkd/find_user.cpp -@@ -339,34 +339,33 @@ - - #else /*not PROC_FIND_USER*/ - -+#include <utmpx.h> -+ - int find_user(char *name, char *tty, char *disp) { - -- struct utmp ubuf; -+ struct utmpx *ubuf; - int status; -- FILE *fd; - struct stat statb; -- char ftty[20+UT_LINESIZE]; -- char ttyFound[UT_LINESIZE] = ""; -- char dispFound[UT_HOSTSIZE+1] = ""; -- -- if (!(fd = fopen(_PATH_UTMP, "r"))) { -- fprintf(stderr, "talkd: can't read %s.\n", _PATH_UTMP); -- return (FAILED); -- } -+ char ftty[20 + sizeof ubuf->ut_line]; -+ char ttyFound[sizeof ubuf->ut_line] = ""; -+ char dispFound[sizeof ubuf->ut_line + 1] = ""; -+ -+ setutxent(); - #define SCMPN(a, b) strncmp(a, b, sizeof (a)) - status = NOT_HERE; - (void) strcpy(ftty, _PATH_DEV); -- while (fread((char *) &ubuf, sizeof ubuf, 1, fd) == 1) { -- if (!SCMPN(ubuf.ut_name, name)) { -+ while ((ubuf = getutxent())) { -+ if ((ubuf->ut_type == USER_PROCESS) && -+ (!SCMPN(ubuf->ut_user, name))) { - if (*tty == '\0') { - /* no particular tty was requested */ -- (void) strcpy(ftty+5, ubuf.ut_line); -+ (void) strcpy(ftty+5, ubuf->ut_line); - if (stat(ftty,&statb) == 0) { - if (!(statb.st_mode & 020)) /* ?character device? */ - continue; -- (void) strcpy(ttyFound, ubuf.ut_line); -+ (void) strcpy(ttyFound, ubuf->ut_line); - #ifdef USE_UT_HOST -- (void) strcpy(dispFound, ubuf.ut_host); -+ (void) strcpy(dispFound, ubuf->ut_host); - strcat(dispFound, " "); - #endif - status = SUCCESS; -@@ -384,13 +383,13 @@ - } - } - } -- else if (!strcmp(ubuf.ut_line, tty)) { -+ else if (!strcmp(ubuf->ut_line, tty)) { - status = SUCCESS; - break; - } - } - } -- fclose(fd); -+ endutxent(); - if (status == SUCCESS) { - (void) strcpy(tty, ttyFound); - (void) strcpy(disp, dispFound); |