nsswitch: add "validation_level" and "info6" to winbindd_response
[metze/samba/wip.git] / nsswitch / winbind_struct_protocol.h
index 69728b6231a08f384d78f57e015a138d61088fcb..3f3ebd0b66dfecc8336dcefba796269a65d10e79 100644 (file)
@@ -25,19 +25,16 @@ typedef char fstring[FSTRING_LEN];
 
 #define WINBINDD_SOCKET_NAME "pipe"            /* Name of PF_UNIX socket */
 
-/* Let the build environment override the public winbindd socket location. This
- * is needed for launchd support -- jpeach.
- */
-#ifndef WINBINDD_SOCKET_DIR
-#define WINBINDD_SOCKET_DIR  "/tmp/.winbindd"  /* Name of PF_UNIX dir */
-#endif
-
-/*
- * when compiled with socket_wrapper support
- * the location of the WINBINDD_SOCKET_DIR
- * can be overwritten via an environment variable
+/* We let the build environment set the public winbindd socket
+ * location. Therefore we no longer set
+ *
+ * #define WINBINDD_SOCKET_DIR "/tmp/.winbindd"
+ *
+ * A number of different distributions set different paths, and so it
+ * needs to come from configure in Samba.  External users of this header will
+ * need to know where the path is on their system by some other
+ * mechanism.
  */
-#define WINBINDD_SOCKET_DIR_ENVVAR "WINBINDD_SOCKET_DIR"
 
 #define WINBINDD_PRIV_SOCKET_SUBDIR "winbindd_privileged" /* name of subdirectory of lp_lock_directory() to hold the 'privileged' pipe */
 #define WINBINDD_DOMAIN_ENV  "WINBINDD_DOMAIN" /* Environment variables */
@@ -56,8 +53,15 @@ typedef char fstring[FSTRING_LEN];
  *     removed WINBINDD_REMOVE_MAPPING
  * 26: added WINBINDD_DC_INFO
  * 27: added WINBINDD_LOOKUPSIDS
+ * 28: added WINBINDD_XIDS_TO_SIDS
+ *     removed WINBINDD_SID_TO_UID
+ *     removed WINBINDD_SID_TO_GID
+ *     removed WINBINDD_GID_TO_SID
+ *     removed WINBINDD_UID_TO_SID
+ * 29: added "authoritative" to response.data.auth
+ * 30: added "validation_level" and "info6" to response.data.auth
  */
-#define WINBIND_INTERFACE_VERSION 27
+#define WINBIND_INTERFACE_VERSION 30
 
 /* Have to deal with time_t being 4 or 8 bytes due to structure alignment.
    On a 64bit Linux box, we have to support a constant structure size
@@ -113,11 +117,8 @@ enum winbindd_cmd {
 
        /* Lookup functions */
 
-       WINBINDD_SID_TO_UID,
-       WINBINDD_SID_TO_GID,
        WINBINDD_SIDS_TO_XIDS,
-       WINBINDD_UID_TO_SID,
-       WINBINDD_GID_TO_SID,
+       WINBINDD_XIDS_TO_SIDS,
 
        WINBINDD_ALLOCATE_UID,
        WINBINDD_ALLOCATE_GID,
@@ -258,7 +259,7 @@ struct winbindd_request {
                gid_t gid;           /* getgrgid, gid_to_sid */
                uint32_t ndrcmd;
                struct {
-                       /* We deliberatedly don't split into domain/user to
+                       /* We deliberately don't split into domain/user to
                            avoid having the client know what the separator
                            character is. */
                        fstring user;
@@ -433,7 +434,9 @@ struct winbindd_response {
                        char first_8_lm_hash[8];
                        fstring krb5ccname;
                        uint32_t reject_reason;
-                       uint32_t padding;
+                       uint8_t authoritative;
+                       uint8_t padding[1];
+                       uint16_t validation_level;
                        struct policy_settings {
                                uint32_t min_length_password;
                                uint32_t password_history;
@@ -467,6 +470,10 @@ struct winbindd_response {
                                fstring logon_srv;
                                fstring logon_dom;
                        } info3;
+                       struct info6_text {
+                               fstring dns_domainname;
+                               fstring principal_name;
+                       } info6;
                        fstring unix_username;
                } auth;
                struct {
@@ -489,6 +496,7 @@ struct winbindd_response {
                struct {
                        uint8_t session_key[16];
                        uint32_t auth_blob_len; /* blob in extra_data */
+                       uint8_t new_spnego;
                } ccache_ntlm_auth;
                struct {
                        fstring dc_unc;