r23792: convert Samba4 to GPLv3
[samba.git] / source4 / libnet / libnet.h
index 65dba4ff78481df2939bb4ccc296924a105e2a0d..4a4477cc916957c29c644c8af936eb03778cfa3f 100644 (file)
@@ -1,11 +1,12 @@
 /* 
    Unix SMB/CIFS implementation.
    
-   Copyright (C) Stefan Metzmacher     2004
+   Copyright (C) Stefan Metzmacher      2004
+   Copyright (C) Rafal Szczesniak       2005-2006
    
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
-   the Free Software Foundation; either version 2 of the License, or
+   the Free Software Foundation; either version 3 of the License, or
    (at your option) any later version.
    
    This program is distributed in the hope that it will be useful,
    GNU General Public License for more details.
    
    You should have received a copy of the GNU General Public License
-   along with this program; if not, write to the Free Software
-   Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+   along with this program.  If not, see <http://www.gnu.org/licenses/>.
 */
 
 struct libnet_context {
-       TALLOC_CTX *mem_ctx;
-
        /* here we need:
         * a client env context
         * a user env context
         */
-};
-
-/* struct and enum for connecting to a dcerpc inferface */
-enum libnet_rpc_connect_level {
-       LIBNET_RPC_CONNECT_PDC
-};
-
-union libnet_rpc_connect {
-       /* connect to a domains PDC */
-       struct {
-               enum libnet_rpc_connect_level level;
-
-               struct {
-                       const char *domain_name;
-                       const char *dcerpc_iface_name;
-                       const char *dcerpc_iface_uuid;
-                       uint32 dcerpc_iface_version;
-               } in;
-
-               struct  {
-                       struct dcerpc_pipe *dcerpc_pipe;
-               } out;
-       } pdc;
-};
-
-
-/* struct and enum for doing a remote password change */
-enum libnet_ChangePassword_level {
-       LIBNET_CHANGE_PASSWORD_GENERIC,
-       LIBNET_CHANGE_PASSWORD_RPC,
-       LIBNET_CHANGE_PASSWORD_KRB5,
-       LIBNET_CHANGE_PASSWORD_LDAP,
-       LIBNET_CHANGE_PASSWORD_RAP
-};
-
-union libnet_ChangePassword {
-       struct {
-               enum libnet_ChangePassword_level level;
-
-               struct _libnet_ChangePassword_in {
-                       const char *account_name;
-                       const char *domain_name;
-                       const char *oldpassword;
-                       const char *newpassword;
-               } in;
-
-               struct _libnet_ChangePassword_out {
-                       const char *error_string;
-               } out;
-       } generic;
+       struct cli_credentials *cred;
 
+       /* samr connection parameters - opened handles and related properties */
        struct {
-               enum libnet_ChangePassword_level level;
-               struct _libnet_ChangePassword_in in;
-               struct _libnet_ChangePassword_out out;
-       } rpc;
-
-       struct {
-               enum libnet_ChangePassword_level level;
-               struct _libnet_ChangePassword_in in;
-               struct _libnet_ChangePassword_out out;
-       } krb5;
-
+               struct dcerpc_pipe *pipe;
+               const char *name;
+               uint32_t access_mask;
+               struct policy_handle handle;
+               int buf_size;
+       } samr;
+
+       /* lsa connection parameters - opened handles and related properties */
        struct {
-               enum libnet_ChangePassword_level level;
-               struct _libnet_ChangePassword_in in;
-               struct _libnet_ChangePassword_out out;
-       } ldap;
+               struct dcerpc_pipe *pipe;
+               const char *name;
+               uint32_t access_mask;
+               struct policy_handle handle;
+       } lsa;
 
-       struct {
-               enum libnet_ChangePassword_level level;
-               struct _libnet_ChangePassword_in in;
-               struct _libnet_ChangePassword_out out;
-       } rap;
-};
+       /* name resolution methods */
+       const char **name_res_methods;
 
-/* struct and enum for doing a remote password set */
-enum libnet_SetPassword_level {
-       LIBNET_SET_PASSWORD_GENERIC,
-       LIBNET_SET_PASSWORD_RPC,
-       LIBNET_SET_PASSWORD_KRB5,
-       LIBNET_SET_PASSWORD_LDAP,
-       LIBNET_SET_PASSWORD_RAP
+       struct event_context *event_ctx;
 };
 
-union libnet_SetPassword {
-       struct {
-               enum libnet_SetPassword_level level;
-
-               struct _libnet_SetPassword_in {
-                       const char *account_name;
-                       const char *domain_name;
-                       const char *newpassword;
-               } in;
-
-               struct _libnet_SetPassword_out {
-                       const char *error_string;
-               } out;
-       } generic;
 
-       struct {
-               enum libnet_SetPassword_level level;
-               struct _libnet_SetPassword_in in;
-               struct _libnet_SetPassword_out out;
-       } rpc;
-
-       struct {
-               enum libnet_SetPassword_level level;
-               struct _libnet_SetPassword_in in;
-               struct _libnet_SetPassword_out out;
-       } krb5;
-
-       struct {
-               enum libnet_SetPassword_level level;
-               struct _libnet_SetPassword_in in;
-               struct _libnet_SetPassword_out out;
-       } ldap;
-
-       struct {
-               enum libnet_ChangePassword_level level;
-               struct _libnet_SetPassword_in in;
-               struct _libnet_SetPassword_out out;
-       } rap;
-};
+#include "lib/ldb/include/ldb.h"
+#include "libnet/composite.h"
+#include "libnet/userman.h"
+#include "libnet/userinfo.h"
+#include "libnet/libnet_passwd.h"
+#include "libnet/libnet_time.h"
+#include "libnet/libnet_rpc.h"
+#include "libnet/libnet_join.h"
+#include "libnet/libnet_site.h"
+#include "libnet/libnet_become_dc.h"
+#include "libnet/libnet_unbecome_dc.h"
+#include "libnet/libnet_vampire.h"
+#include "libnet/libnet_user.h"
+#include "libnet/libnet_share.h"
+#include "libnet/libnet_lookup.h"
+#include "libnet/libnet_domain.h"
+#include "libnet/libnet_proto.h"