diff options
-rw-r--r-- | monitor.c | 4 | ||||
-rw-r--r-- | monitor_mm.h | 2 | ||||
-rw-r--r-- | monitor_wrap.c | 5 |
3 files changed, 10 insertions, 1 deletions
@@ -366,7 +366,11 @@ mm_answer_pwnamallow(int socket, Buffer *m) buffer_put_cstring(m, pwent->pw_name); buffer_put_cstring(m, "*"); buffer_put_cstring(m, pwent->pw_gecos); +#if defined(HAVE_PW_CLASS_IN_PASSWD) buffer_put_cstring(m, pwent->pw_class); +#else +#warning XXX - put an empty string instead to preserve protocol? +#endif buffer_put_cstring(m, pwent->pw_dir); buffer_put_cstring(m, pwent->pw_shell); diff --git a/monitor_mm.h b/monitor_mm.h index 5b4b789c..39ee9027 100644 --- a/monitor_mm.h +++ b/monitor_mm.h @@ -25,7 +25,7 @@ #ifndef _MM_H_ #define _MM_H_ -#include <sys/tree.h> +#include <openbsd-compat/fake-tree.h> struct mm_share { RB_ENTRY(mm_share) next; diff --git a/monitor_wrap.c b/monitor_wrap.c index 798e9353..5d7f4ba7 100644 --- a/monitor_wrap.c +++ b/monitor_wrap.c @@ -186,7 +186,10 @@ mm_getpwnamallow(int socket, const char *login, int *allowed) pw->pw_name = buffer_get_string(&m, NULL); pw->pw_passwd = buffer_get_string(&m, NULL); pw->pw_gecos = buffer_get_string(&m, NULL); +#if defined(HAVE_PW_CLASS_IN_PASSWD) +#error XXX - get an empty string instead to preserve protocol? pw->pw_class = buffer_get_string(&m, NULL); +#endif pw->pw_dir = buffer_get_string(&m, NULL); pw->pw_shell = buffer_get_string(&m, NULL); buffer_free(&m); @@ -200,7 +203,9 @@ pwfree(struct passwd *pw) xfree(pw->pw_name); xfree(pw->pw_passwd); xfree(pw->pw_gecos); +#if defined(HAVE_PW_CLASS_IN_PASSWD) xfree(pw->pw_class); +#endif xfree(pw->pw_dir); xfree(pw->pw_shell); xfree(pw); |