From f88b7a076be74a29a3bf876b4e2705f4a1ecf42b Mon Sep 17 00:00:00 2001 From: Jeremy Allison Date: Wed, 24 Oct 2007 14:16:54 -0700 Subject: This is a large patch (sorry). Migrate from struct in_addr to struct sockaddr_storage in most places that matter (ie. not the nmbd and NetBIOS lookups). This passes make test on an IPv4 box, but I'll have to do more work/testing on IPv6 enabled boxes. This should now give us a framework for testing and finishing the IPv6 migration. It's at the state where someone with a working IPv6 setup should (theorecically) be able to type : smbclient //ipv6-address/share and have it work. Jeremy. (This used to be commit 98e154c3125d5732c37a72d74b0eb5cd7b6155fd) --- source3/nmbd/nmbd_winsserver.c | 24 ++++++++++++------------ 1 file changed, 12 insertions(+), 12 deletions(-) (limited to 'source3/nmbd/nmbd_winsserver.c') diff --git a/source3/nmbd/nmbd_winsserver.c b/source3/nmbd/nmbd_winsserver.c index 38962c2b39..70303af48b 100644 --- a/source3/nmbd/nmbd_winsserver.c +++ b/source3/nmbd/nmbd_winsserver.c @@ -914,7 +914,7 @@ void wins_process_name_refresh_request( struct subnet_record *subrec, * if the record is a replica: * we take ownership and update the version ID. */ - if (!ip_equal(namerec->data.wins_ip, our_fake_ip)) { + if (!ip_equal_v4(namerec->data.wins_ip, our_fake_ip)) { update_wins_owner(namerec, our_fake_ip); get_global_id_and_update(&namerec->data.id, True); } @@ -1030,7 +1030,7 @@ static void wins_register_query_fail(struct subnet_record *subrec, namerec = find_name_on_subnet(subrec, question_name, FIND_ANY_NAME); if ((namerec != NULL) && (namerec->data.source == REGISTER_NAME) && - ip_equal(rrec->packet->ip, *namerec->data.ip)) { + ip_equal_v4(rrec->packet->ip, *namerec->data.ip)) { remove_name_from_namelist( subrec, namerec); namerec = NULL; } @@ -1304,8 +1304,8 @@ is one of our (WINS server) names. Denying registration.\n", nmb_namestr(questio if( !registering_group_name && (namerec != NULL) && (namerec->data.num_ips == 1) - && ip_equal( namerec->data.ip[0], from_ip ) - && ip_equal(namerec->data.wins_ip, our_fake_ip) ) { + && ip_equal_v4( namerec->data.ip[0], from_ip ) + && ip_equal_v4(namerec->data.wins_ip, our_fake_ip) ) { update_name_ttl( namerec, ttl ); wins_hook("refresh", namerec, ttl); send_wins_name_registration_response( 0, ttl, p ); @@ -1633,7 +1633,7 @@ is one of our (WINS server) names. Denying registration.\n", nmb_namestr(questio * If it's a replica, we need to become the wins owner * to force the replication */ - if (!ip_equal(namerec->data.wins_ip, our_fake_ip)) { + if (!ip_equal_v4(namerec->data.wins_ip, our_fake_ip)) { get_global_id_and_update(&namerec->data.id, True); update_wins_owner(namerec, our_fake_ip); update_wins_flag(namerec, WINS_ACTIVE); @@ -2138,7 +2138,7 @@ static int wins_processing_traverse_fn(TDB_CONTEXT *tdb, TDB_DATA kbuf, TDB_DATA } /* handle records, samba is the wins owner */ - if (ip_equal(namerec->data.wins_ip, our_fake_ip)) { + if (ip_equal_v4(namerec->data.wins_ip, our_fake_ip)) { switch (namerec->data.wins_flags & WINS_STATE_MASK) { case WINS_ACTIVE: namerec->data.wins_flags&=~WINS_STATE_MASK; @@ -2424,16 +2424,16 @@ void nmbd_wins_new_entry(struct messaging_context *msg, if (namerec->data.wins_flags&WINS_UNIQUE && record->wins_flags&WINS_UNIQUE) { /* the database record is a replica */ - if (!ip_equal(namerec->data.wins_ip, our_fake_ip)) { + if (!ip_equal_v4(namerec->data.wins_ip, our_fake_ip)) { if (namerec->data.wins_flags&WINS_ACTIVE && record->wins_flags&WINS_TOMBSTONED) { - if (ip_equal(namerec->data.wins_ip, record->wins_ip)) + if (ip_equal_v4(namerec->data.wins_ip, record->wins_ip)) overwrite=True; } else overwrite=True; } else { /* we are the wins owner of the database record */ /* the 2 records have the same IP address */ - if (ip_equal(namerec->data.ip[0], record->ip[0])) { + if (ip_equal_v4(namerec->data.ip[0], record->ip[0])) { if (namerec->data.wins_flags&WINS_ACTIVE && record->wins_flags&WINS_TOMBSTONED) get_global_id_and_update(&namerec->data.id, True); else @@ -2485,10 +2485,10 @@ void nmbd_wins_new_entry(struct messaging_context *msg, overwrite=True; } else { - if (ip_equal(record->wins_ip, namerec->data.wins_ip)) + if (ip_equal_v4(record->wins_ip, namerec->data.wins_ip)) overwrite=True; - if (ip_equal(namerec->data.wins_ip, our_fake_ip)) + if (ip_equal_v4(namerec->data.wins_ip, our_fake_ip)) if (namerec->data.wins_flags&WINS_UNIQUE) get_global_id_and_update(&namerec->data.id, True); @@ -2497,7 +2497,7 @@ void nmbd_wins_new_entry(struct messaging_context *msg, if (record->wins_flags&WINS_ACTIVE && namerec->data.wins_flags&WINS_ACTIVE) if (namerec->data.wins_flags&WINS_UNIQUE || namerec->data.wins_flags&WINS_MHOMED) - if (ip_equal(record->wins_ip, namerec->data.wins_ip)) + if (ip_equal_v4(record->wins_ip, namerec->data.wins_ip)) overwrite=True; } -- cgit