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(ev, 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 services' params */
- ZERO_STRUCT(ctx->samr);
- ZERO_STRUCT(ctx->lsa);
+ /* 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 pointer */
- ctx->pipe = NULL;
-
return ctx;
}