s4-smbtorture: Make test names lowercase and dot-separated.
[metze/samba/wip.git] / source4 / torture / nbt / winsbench.c
index 1c79b5eb75899f081e8c60a7e7983df830641a73..aff620878c8f1b46d3fc749f2e722999092d23f6 100644 (file)
@@ -35,6 +35,7 @@ struct wins_state {
        int pass_count;
        int fail_count;
        const char *wins_server;
+       uint16_t wins_port;
        const char *my_ip;
        uint32_t ttl;
 };
@@ -55,7 +56,7 @@ static struct nbt_name generate_name(TALLOC_CTX *tctx, int idx)
 
 static void register_handler(struct nbt_name_request *req)
 {
-       struct idx_state *istate = talloc_get_type(req->async.private, struct idx_state);
+       struct idx_state *istate = talloc_get_type(req->async.private_data, struct idx_state);
        struct wins_state *state = istate->state;
        struct nbt_name_register io;
        NTSTATUS status;
@@ -86,6 +87,7 @@ static void generate_register(struct nbt_name_socket *nbtsock, struct wins_state
 
        io.in.name            = generate_name(tmp_ctx, idx);
        io.in.dest_addr       = state->wins_server;
+       io.in.dest_port       = state->wins_port;
        io.in.address         = state->my_ip;
        io.in.nb_flags        = NBT_NODE_H;
        io.in.register_demand = false;
@@ -98,7 +100,7 @@ static void generate_register(struct nbt_name_socket *nbtsock, struct wins_state
        req = nbt_name_register_send(nbtsock, &io);
 
        req->async.fn = register_handler;
-       req->async.private = istate;
+       req->async.private_data = istate;
 
        talloc_free(tmp_ctx);
 }
@@ -106,7 +108,7 @@ static void generate_register(struct nbt_name_socket *nbtsock, struct wins_state
 
 static void release_handler(struct nbt_name_request *req)
 {
-       struct idx_state *istate = talloc_get_type(req->async.private, struct idx_state);
+       struct idx_state *istate = talloc_get_type(req->async.private_data, struct idx_state);
        struct wins_state *state = istate->state;
        struct nbt_name_release io;
        NTSTATUS status;
@@ -137,6 +139,7 @@ static void generate_release(struct nbt_name_socket *nbtsock, struct wins_state
        istate->state = state;
 
        io.in.name            = generate_name(tmp_ctx, idx);
+       io.in.dest_port       = state->wins_port;
        io.in.dest_addr       = state->wins_server;
        io.in.address         = state->my_ip;
        io.in.nb_flags        = NBT_NODE_H;
@@ -147,7 +150,7 @@ static void generate_release(struct nbt_name_socket *nbtsock, struct wins_state
        req = nbt_name_release_send(nbtsock, &io);
 
        req->async.fn = release_handler;
-       req->async.private = istate;
+       req->async.private_data = istate;
 
        talloc_free(tmp_ctx);
 }
@@ -155,7 +158,7 @@ static void generate_release(struct nbt_name_socket *nbtsock, struct wins_state
 
 static void query_handler(struct nbt_name_request *req)
 {
-       struct idx_state *istate = talloc_get_type(req->async.private, struct idx_state);
+       struct idx_state *istate = talloc_get_type(req->async.private_data, struct idx_state);
        struct wins_state *state = istate->state;
        struct nbt_name_query io;
        NTSTATUS status;
@@ -185,7 +188,7 @@ static void generate_query(struct nbt_name_socket *nbtsock, struct wins_state *s
 
        io.in.name            = generate_name(tmp_ctx, idx);
        io.in.dest_addr       = state->wins_server;
-       io.in.dest_port       = lp_nbt_port(global_loadparm);
+       io.in.dest_port       = state->wins_port;
        io.in.broadcast       = false;
        io.in.wins_lookup     = true;
        io.in.timeout         = 2;
@@ -194,7 +197,7 @@ static void generate_query(struct nbt_name_socket *nbtsock, struct wins_state *s
        req = nbt_name_query_send(nbtsock, &io);
 
        req->async.fn = query_handler;
-       req->async.private = istate;
+       req->async.private_data = istate;
 
        talloc_free(tmp_ctx);
 }
@@ -222,7 +225,7 @@ static void generate_request(struct nbt_name_socket *nbtsock, struct wins_state
 */
 static bool bench_wins(struct torture_context *tctx)
 {
-       struct nbt_name_socket *nbtsock = nbt_name_socket_init(tctx, NULL);
+       struct nbt_name_socket *nbtsock = nbt_name_socket_init(tctx, tctx->ev);
        int num_sent=0;
        struct timeval tv = timeval_current();
        bool ret = true;
@@ -232,6 +235,7 @@ static bool bench_wins(struct torture_context *tctx)
        struct socket_address *my_ip;
        struct nbt_name name;
        const char *address;
+       struct interface *ifaces;
 
        if (!torture_nbt_get_name(tctx, &name, &address))
                return false;
@@ -241,7 +245,9 @@ static bool bench_wins(struct torture_context *tctx)
        state->num_names = torture_entries;
        state->registered = talloc_zero_array(state, bool, state->num_names);
        state->wins_server = address;
-       state->my_ip = talloc_strdup(tctx, iface_best_ip(tctx->lp_ctx, address));
+       state->wins_port = lpcfg_nbt_port(tctx->lp_ctx);
+       load_interfaces(tctx, lpcfg_interfaces(tctx->lp_ctx), &ifaces);
+       state->my_ip = talloc_strdup(tctx, iface_best_ip(ifaces, address));
        state->ttl = timelimit;
 
        my_ip = socket_address_from_strings(nbtsock, nbtsock->sock->backend_name, 
@@ -286,8 +292,7 @@ static bool bench_wins(struct torture_context *tctx)
 */
 struct torture_suite *torture_bench_wins(TALLOC_CTX *mem_ctx)
 {
-       struct torture_suite *suite = torture_suite_create(mem_ctx, 
-                                                          "BENCH-WINS");
+       struct torture_suite *suite = torture_suite_create(mem_ctx, "bench-wins");
 
        torture_suite_add_simple_test(suite, "wins", bench_wins);