ctdb-failover: Split statd_callout add-client/del-client
[samba.git] / source4 / libnet / libnet.c
index 0dca57926d69e8b8b5d193ed7a2339b3a87ff139..a590893bee21ab31c1da8bacc4eda1c7519c5652 100644 (file)
@@ -5,7 +5,7 @@
    
    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/>.
 */
 
 #include "includes.h"
 #include "libnet/libnet.h"
 #include "lib/events/events.h"
+#include "param/param.h"
+#include "libcli/resolve/resolve.h"
 
-struct libnet_context *libnet_context_init(struct event_context *ev)
+struct libnet_context *libnet_context_init(struct tevent_context *ev,
+                                          struct loadparm_context *lp_ctx)
 {
        struct libnet_context *ctx;
 
-       /* create brand new libnet context */ 
-       ctx = talloc(NULL, struct libnet_context);
-       if (!ctx) {
+       /* We require an event context here */
+       if (!ev) {
                return NULL;
        }
 
-       /* events */
-       if (ev == NULL) {
-               ev = event_context_find(ctx);
-               if (ev == NULL) {
-                       talloc_free(ctx);
-                       return NULL;
-               }
+       /* create brand new libnet context */
+       ctx = talloc_zero(ev, struct libnet_context);
+       if (!ctx) {
+               return NULL;
        }
+
        ctx->event_ctx = ev;
+       ctx->lp_ctx = lp_ctx;
 
-       /* name resolution methods */
-       ctx->name_res_methods = str_list_copy(ctx, lp_name_resolve_order());
+       /* make sure dcerpc is initialized */
+       dcerpc_init();
 
-       /* connected domain params */
-       ZERO_STRUCT(ctx->domain);
+       /* name resolution methods */
+       ctx->resolve_ctx = lpcfg_resolve_context(lp_ctx);
 
-       /* currently opened user */
-       ZERO_STRUCT(ctx->user_handle);
+       /* default buffer size for various operations requiring specifying a buffer */
+       ctx->samr.buf_size = 128;
 
-       /* init pipe pointers */
-       ctx->samr_pipe = NULL;
-       ctx->lsa_pipe  = NULL;
-       ctx->pipe      = NULL;
-       
        return ctx;
 }