Follow error code name convention in libwbclient.
[ira/wip.git] / source3 / nsswitch / libwbclient / wbclient.h
index c01db9618d9ae3b53ac2b419d003bbe36f871d69..812751d9b53914ea014cc903b265d1257f130298 100644 (file)
@@ -40,7 +40,7 @@ enum _wbcErrType {
        WBC_ERR_INVALID_PARAM,  /**< An Invalid parameter was supplied **/
        WBC_ERR_WINBIND_NOT_AVAILABLE,   /**< Winbind daemon is not available **/
        WBC_ERR_DOMAIN_NOT_FOUND,        /**< Domain is not trusted or cannot be found **/
-       WBC_INVALID_RESPONSE,        /**< Winbind returned an invalid response **/
+       WBC_ERR_INVALID_RESPONSE,        /**< Winbind returned an invalid response **/
        WBC_ERR_NSS_ERROR,            /**< NSS_STATUS error **/
        WBC_ERR_AUTH_ERROR        /**< Authentication failed **/
 };
@@ -51,6 +51,19 @@ typedef enum _wbcErrType wbcErr;
 
 const char *wbcErrorString(wbcErr error);
 
+/**
+ *  @brief Some useful details about the running winbindd
+ *
+ **/
+struct wbcInterfaceDetails {
+       uint32_t interface_version;
+       const char *winbind_version;
+       char winbind_separator;
+       const char *netbios_name;
+       const char *netbios_domain;
+       const char *dns_domain;
+};
+
 /*
  * Data types used by the Winbind Client API
  */
@@ -277,6 +290,8 @@ wbcErr wbcStringToSid(const char *sid_string,
 
 wbcErr wbcPing(void);
 
+wbcErr wbcInterfaceDetails(struct wbcInterfaceDetails **details);
+
 /*
  * Name/SID conversion
  */
@@ -298,6 +313,19 @@ wbcErr wbcLookupRids(struct wbcDomainSid *dom_sid,
                     const char ***names,
                     enum wbcSidType **types);
 
+wbcErr wbcLookupUserSids(const struct wbcDomainSid *user_sid,
+                        bool domain_groups_only,
+                        uint32_t *num_sids,
+                        struct wbcDomainSid **sids);
+
+wbcErr wbcListUsers(const char *domain_name,
+                   uint32_t *num_users,
+                   const char ***users);
+
+wbcErr wbcListGroups(const char *domain_name,
+                    uint32_t *num_groups,
+                    const char ***groups);
+
 /*
  * SID/uid/gid Mappings
  */
@@ -316,7 +344,15 @@ wbcErr wbcGidToSid(gid_t gid,
 
 wbcErr wbcAllocateUid(uid_t *puid);
 
-wbcErr wbcAllocateGid(uid_t *pgid);
+wbcErr wbcAllocateGid(gid_t *pgid);
+
+wbcErr wbcSetUidMapping(uid_t uid, const struct wbcDomainSid *sid);
+
+wbcErr wbcSetGidMapping(gid_t gid, const struct wbcDomainSid *sid);
+
+wbcErr wbcSetUidHwm(uid_t uid_hwm);
+
+wbcErr wbcSetGidHwm(gid_t gid_hwm);
 
 /*
  * NSS Lookup User/Group details
@@ -342,6 +378,10 @@ wbcErr wbcEndgrent(void);
 
 wbcErr wbcGetgrent(struct group **grp);
 
+wbcErr wbcGetGroups(const char *account,
+                   uint32_t *num_groups,
+                   gid_t **_groups);
+
 
 /*
  * Lookup Domain information
@@ -350,8 +390,6 @@ wbcErr wbcGetgrent(struct group **grp);
 wbcErr wbcDomainInfo(const char *domain,
                     struct wbcDomainInfo **info);
 
-wbcErr wbcDomainSequenceNumbers(void);
-
 /*
  * Athenticate functions
  */
@@ -363,4 +401,16 @@ wbcErr wbcAuthenticateUserEx(const struct wbcAuthUserParams *params,
                             struct wbcAuthUserInfo **info,
                             struct wbcAuthErrorInfo **error);
 
+/*
+ * Resolve functions
+ */
+wbcErr wbcResolveWinsByName(const char *name, const char **ip);
+wbcErr wbcResolveWinsByIP(const char *ip, const char **name);
+
+/*
+ * Trusted domain functions
+ */
+wbcErr wbcCheckTrustCredentials(const char *domain,
+                               struct wbcAuthErrorInfo **error);
+
 #endif      /* _WBCLIENT_H */