s3: Add wbinfo --dc-info
[ira/wip.git] / nsswitch / winbind_struct_protocol.h
index 3056e25905e49bc1a0abb35072e9343a31775a7a..9304702fa01733691956e7755f6e2bfbb07b6cf8 100644 (file)
@@ -47,12 +47,20 @@ typedef char fstring[FSTRING_LEN];
 /* Update this when you change the interface.
  * 21: added WINBINDD_GETPWSID
  *     added WINBINDD_GETSIDALIASES
+ * 22: added WINBINDD_PING_DC
+ * 23: added session_key to ccache_ntlm_auth response
+ *     added WINBINDD_CCACHE_SAVE
+ * 24: Fill in num_entries WINBINDD_LIST_USERS and WINBINDD_LIST_GROUPS
+ * 25: removed WINBINDD_SET_HWM
+ *     removed WINBINDD_SET_MAPPING
+ *     removed WINBINDD_REMOVE_MAPPING
+ * 26: added WINBINDD_DC_INFO
  */
-#define WINBIND_INTERFACE_VERSION 21
+#define WINBIND_INTERFACE_VERSION 26
 
 /* 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
-   between /lib/libnss_winbind.so.2 and /li64/libnss_winbind.so.2.
+   between /lib/libnss_winbind.so.2 and /lib64/libnss_winbind.so.2.
    The easiest way to do this is to always use 8byte values for time_t. */
 
 #define SMB_TIME_T int64_t
@@ -111,14 +119,12 @@ enum winbindd_cmd {
 
        WINBINDD_ALLOCATE_UID,
        WINBINDD_ALLOCATE_GID,
-       WINBINDD_SET_MAPPING,
-       WINBINDD_REMOVE_MAPPING,
-       WINBINDD_SET_HWM,
 
        /* Miscellaneous other stuff */
 
        WINBINDD_CHECK_MACHACC,     /* Check machine account pw works */
        WINBINDD_CHANGE_MACHACC,    /* Change machine account pw */
+       WINBINDD_PING_DC,           /* Ping the DC through NETLOGON */
        WINBINDD_PING,              /* Just tell me winbind is running */
        WINBINDD_INFO,              /* Various bit of info.  Currently just tidbits */
        WINBINDD_DOMAIN_NAME,       /* The domain this winbind server is a member of (lp_workgroup()) */
@@ -127,6 +133,7 @@ enum winbindd_cmd {
                                   struct winbindd_domain */
        WINBINDD_GETDCNAME,     /* Issue a GetDCName Request */
        WINBINDD_DSGETDCNAME,   /* Issue a DsGetDCName Request */
+       WINBINDD_DC_INFO,       /* Which DC are we connected to? */
 
        WINBINDD_SHOW_SEQUENCE, /* display sequence numbers of domains */
 
@@ -162,9 +169,6 @@ enum winbindd_cmd {
        WINBINDD_DUAL_SIDS2XIDS,
        WINBINDD_DUAL_UID2SID,
        WINBINDD_DUAL_GID2SID,
-       WINBINDD_DUAL_SET_MAPPING,
-       WINBINDD_DUAL_REMOVE_MAPPING,
-       WINBINDD_DUAL_SET_HWM,
 
        /* Wrapper around possibly blocking unix nss calls */
        WINBINDD_DUAL_USERINFO,
@@ -175,6 +179,7 @@ enum winbindd_cmd {
        /* Complete the challenge phase of the NTLM authentication
           protocol using cached password. */
        WINBINDD_CCACHE_NTLMAUTH,
+       WINBINDD_CCACHE_SAVE,
 
        WINBINDD_NUM_CMDS
 };
@@ -332,6 +337,11 @@ struct winbindd_request {
                        uint32_t initial_blob_len; /* blobs in extra_data */
                        uint32_t challenge_blob_len;
                } ccache_ntlm_auth;
+               struct {
+                       uid_t uid;
+                       fstring user;
+                       fstring pass;
+               } ccache_save;
                struct {
                        fstring domain_name;
                        fstring domain_guid;
@@ -476,6 +486,7 @@ struct winbindd_response {
                        uint32_t group_rid;
                } user_info;
                struct {
+                       uint8_t session_key[16];
                        uint32_t auth_blob_len; /* blob in extra_data */
                } ccache_ntlm_auth;
                struct {