summaryrefslogtreecommitdiff
path: root/source3/nsswitch/winbindd_nss.h
diff options
context:
space:
mode:
Diffstat (limited to 'source3/nsswitch/winbindd_nss.h')
-rw-r--r--source3/nsswitch/winbindd_nss.h118
1 files changed, 118 insertions, 0 deletions
diff --git a/source3/nsswitch/winbindd_nss.h b/source3/nsswitch/winbindd_nss.h
new file mode 100644
index 0000000000..0cf16e9666
--- /dev/null
+++ b/source3/nsswitch/winbindd_nss.h
@@ -0,0 +1,118 @@
+/*
+ Unix SMB/Netbios implementation.
+ Version 2.0
+
+ Winbind daemon for ntdom nss module
+
+ Copyright (C) Tim Potter 2000
+
+ This library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Library General Public
+ License as published by the Free Software Foundation; either
+ version 2 of the License, or (at your option) any later version.
+
+ This library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Library General Public License for more details.
+
+ You should have received a copy of the GNU Library General Public
+ License along with this library; if not, write to the
+ Free Software Foundation, Inc., 59 Temple Place - Suite 330,
+ Boston, MA 02111-1307, USA.
+*/
+
+#ifndef _WINBINDD_NTDOM_H
+#define _WINBINDD_NTDOM_H
+
+#define WINBINDD_SOCKET_NAME "pipe" /* Name of PF_UNIX socket */
+#define WINBINDD_SOCKET_DIR "/tmp/.winbindd" /* Name of PF_UNIX dir */
+#define WINBINDD_DOMAIN_ENV "WINBINDD_DOMAIN" /* Environment variable */
+
+/* Socket commands */
+
+enum winbindd_cmd {
+ WINBINDD_GETPWNAM_FROM_USER, /* getpwnam stuff */
+ WINBINDD_GETPWNAM_FROM_UID,
+ WINBINDD_GETGRNAM_FROM_GROUP, /* getgrnam stuff */
+ WINBINDD_GETGRNAM_FROM_GID,
+ WINBINDD_SETPWENT, /* get/set/endpwent */
+ WINBINDD_ENDPWENT,
+ WINBINDD_GETPWENT,
+ WINBINDD_SETGRENT, /* get/set/endgrent */
+ WINBINDD_ENDGRENT,
+ WINBINDD_GETGRENT,
+ WINBINDD_PAM_AUTH
+};
+
+/* Winbind request structure */
+
+struct winbindd_request {
+ enum winbindd_cmd cmd; /* Winbindd command to execute */
+ pid_t pid; /* pid of calling process */
+
+ union {
+ fstring username; /* getpwnam() */
+ fstring groupname; /* getgrnam() */
+ uid_t uid; /* getpwuid() */
+ gid_t gid; /* getgrgid() */
+ struct {
+ /* the following is used by pam_winbind */
+ fstring user;
+ fstring pass;
+ } auth;
+ } data;
+ fstring domain; /* {set,get,end}{pw,gr}ent() */
+};
+
+/* Response values */
+
+enum winbindd_result {
+ WINBINDD_ERROR,
+ WINBINDD_OK
+};
+
+/* Winbind response structure */
+
+struct winbindd_response {
+
+ /* Header information */
+
+ int length; /* Length of response */
+ enum winbindd_result result; /* Result code */
+
+ /* Fixed length return data */
+
+ union {
+
+ /* getpwnam, getpwuid, getpwent */
+
+ struct winbindd_pw {
+ fstring pw_name;
+ fstring pw_passwd;
+ uid_t pw_uid;
+ gid_t pw_gid;
+ fstring pw_gecos;
+ fstring pw_dir;
+ fstring pw_shell;
+ int pwent_ndx;
+ } pw;
+
+ /* getgrnam, getgrgid, getgrent */
+
+ struct winbindd_gr {
+ fstring gr_name;
+ fstring gr_passwd;
+ gid_t gr_gid;
+ int num_gr_mem;
+ int grent_ndx;
+ } gr;
+
+ } data;
+
+ /* Variable length return data */
+
+ void *extra_data; /* getgrnam, getgrgid, getgrent */
+};
+
+#endif