Old entries from PC in wins.dat are not deleted

Günay Duman gunay.duman at yahoo.com.tr
Thu Oct 8 16:25:01 MDT 2009


Hi, 



 I hope the problem can be understood to explain. 



 I made the observation that computer name in wins.dat are not deleted. 



 I once watched a little and therefore had not turned on my PC. It
still has TTL of 3 days. I have had to elapse the TTL. Then got my PC
again a TTL, but this time it was a day long. Had elapsed when the
well, my PC again to get TTL of 3 days. I think there is an error. 


 In the logs I could see that source nmbd/nmbd_winsserver.c is responsible for the function.
 
 Here are my logs:
 
 [2009/10/05 19:19:59, 3, pid = 8461] 

 nmbd / nmbd_winsserver.c: wins_processing_traverse_fn (2149) 

  : wins_processing_traverse_fn expiring PCSERK <00> 

 [2009/10/05 19:19:59, 3, pid = 8461] 

 nmbd / nmbd_winsserver.c: wins_processing_traverse_fn (2149) 

  : wins_processing_traverse_fn expiring PCSERK <20> 

 [2009/10/05 19:19:59, 4, pid = 8461] 

 nmbd / nmbd_workgroupdb.c: find_workgroup_on_subnet (171) 

  find_workgroup_on_subnet: workgroup search for WORKGROUP on subnet 

 UNICAST_SUBNET: found. 

 [2009/10/05 19:19:59, 4, pid = 8461] 

 nmbd / nmbd_workgroupdb.c: find_workgroup_on_subnet (171) 

  find_workgroup_on_subnet: workgroup search for WORKGROUP on subnet 

 UNICAST_SUBNET: found. 



Source:


               /* handle records, samba is the wins owner */

                if (ip_equal(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;

                                        namerec->data.wins_flags|

=WINS_RELEASED;

                                        namerec->data.death_time = t +

EXTINCTION_INTERVAL;

                                        DEBUG(3,("wins_processing_traverse_fn:

expiring %s\n",

                                                nmb_namestr(&namerec->name)));

                                        store_record = True;

                                        goto done;

                                case WINS_RELEASED:



namerec->data.wins_flags&=~WINS_STATE_MASK;

                                        namerec->data.wins_flags|

=WINS_TOMBSTONED;

                                        namerec->data.death_time = t +

EXTINCTION_TIMEOUT;



get_global_id_and_update(&namerec->data.id, True);

                                        DEBUG(3,("wins_processing_traverse_fn:

tombstoning %s\n",

                                                nmb_namestr(&namerec->name)));

                                        store_record = True;

                                        goto done;

                                case WINS_TOMBSTONED:

                                        DEBUG(3,("wins_processing_traverse_fn:

deleting %s\n",

                                                nmb_namestr(&namerec->name)));



remove_name_from_wins_namelist(namerec );

                                        goto done;

                        }

In the source code I can see that he started the state
"WINS_ACTIVE" has (3 days), then gets one chance and again
"WINS_RELEASED" get (1 day) and actually get one days after the status
WINS_TOMBSTONED "and should should be deleted from the list. Instead,
it regains "WINS_ACTIVE" (3 days).
 
 As far as I can see, the data fields data.wins_flags confused
with data.nb_flags. 

Would be glad if someone can confirm this bug, or
could be a solution to my problem. 

I'd be very happy, as I the current
status ( "WINS_ACTIVE" WINS_RELEASED "and" WINS_TOMBSTONED ") could
check the computer? Thus, a feature I have not found. 


Thank you already


Günay Duman


__________________________________________________
Yahoo! kullanıyor musunuz?
İstenmeyen postadan bıktınız mı?  Yahoo! Posta'da piyasanın en iyi istenmeyen posta korunması var 
http://tr.mail.yahoo.com 


More information about the samba-technical mailing list