s3:libads: add param to prevent writing spn(s) to ads
[samba.git] / source3 / libads / ads_proto.h
index 8e9a7690a0f24f3c9d2cebe97ecd5cd0fe2e4fee..154bf67f9641b5f05401e8f3622ce5c42de810f3 100644 (file)
@@ -49,11 +49,19 @@ void ads_disp_sd(ADS_STRUCT *ads, TALLOC_CTX *mem_ctx, struct security_descripto
 
 /* The following definitions come from libads/kerberos_keytab.c  */
 
-int ads_keytab_add_entry(ADS_STRUCT *ads, const char *srvPrinc);
+int ads_keytab_add_entry(ADS_STRUCT *ads, const char *srvPrinc,
+                        bool update_ads);
 int ads_keytab_flush(ADS_STRUCT *ads);
 int ads_keytab_create_default(ADS_STRUCT *ads);
 int ads_keytab_list(const char *keytab_name);
 
+/* The following definitions come from libads/net_ads_setspn.c  */
+bool ads_setspn_list(ADS_STRUCT *ads, const char *machine);
+bool ads_setspn_add(ADS_STRUCT *ads, const char *machine_name,
+                   const char * spn);
+bool ads_setspn_delete(ADS_STRUCT *ads, const char *machine_name,
+                      const char * spn);
+
 /* The following definitions come from libads/krb5_errs.c  */
 
 /* The following definitions come from libads/kerberos_util.c  */
@@ -95,8 +103,8 @@ ADS_STATUS ads_get_service_principal_names(TALLOC_CTX *mem_ctx,
                                           char ***spn_array,
                                           size_t *num_spns);
 ADS_STATUS ads_clear_service_principal_names(ADS_STRUCT *ads, const char *machine_name);
-ADS_STATUS ads_add_service_principal_name(ADS_STRUCT *ads, const char *machine_name,
-                                          const char *my_fqdn, const char *spn);
+ADS_STATUS ads_add_service_principal_names(ADS_STRUCT *ads, const char *machine_name,
+                                          const char **spns);
 ADS_STATUS ads_create_machine_acct(ADS_STRUCT *ads,
                                   const char *machine_name,
                                   const char *org_unit,
@@ -193,4 +201,14 @@ void ndr_print_ads_saslwrap_struct(struct ndr_print *ndr,
 
 ADS_STATUS ads_change_trust_account_password(ADS_STRUCT *ads, char *host_principal);
 
+struct spn_struct {
+       const char *serviceclass;
+       const char *servicename;
+       const char *host;
+       int32_t port;
+};
+
+/* parse a windows style SPN, returns NULL if parsing fails */
+struct spn_struct *parse_spn(TALLOC_CTX *ctx, const char *srvprinc);
+
 #endif /* _LIBADS_ADS_PROTO_H_ */