diff options
Diffstat (limited to 'source3/nsswitch/winbindd_nss.h')
-rw-r--r-- | source3/nsswitch/winbindd_nss.h | 118 |
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 |