no sorry, I am completely cluless about this!
humm.. what you could do to 'debug' this is open the amsn console (ctrl-shift-C from the main window) and type :
fconfigure sockXXX
where 'XXX' would be the file descriptor of the socket... you can easily find that by doing :
ls -l /proc/`pidof wish`/fd | grep socket
this will list you all the file descriptors of sockets used by amsn. (you might use `pidof wish8.5` or `pidof wish8.4` depending on if you hardcoded 'wish8.5' in the amsn startup script).
assuming you had in the output the filename '7 9 10 15' .. then you would do in amsn's console :
fconfigure sock7
fconfigure sock9
fconfigure sock10
fconfigure sock15
this will output to you more info on what each socket has... (whether it is connected, to who, what options, etc..) hopefully, it will help you there...
one more option would be to copy paste this script I just wrote in amsn's console, it should give you the list of all the sockets opened by amsn... if you see that the list returned is less than the number of sockets you see opened with netstat, then there's a leak somewhere..
otherwise, post here the result so I can tell you what each socket is used for.. or how to investigate more on the usage of each of these sockets :
proc findSockets { {namespace "::" } } {
set result [list]
foreach v [info vars "${namespace}::*"] {
set content ""
if { [catch {set content [set $v]}] } {
foreach {key val} [array get $v] {
set content $val
if {[string first "sock" $content] == 0 &&
![catch {eof $content}]} {
lappend result $content
puts "Found socket $content in variable ${v} ($key)"
}
}
} else {
if {[string first "sock" $content] == 0 &&
![catch {eof $content}] } {
lappend result $content
puts "Found socket $content in variable ${v}"
}
}
}
foreach n [namespace children $namespace] {
set res [findSockets $n]
set result [concat $result $res]
}
return $result
}
findSockets
p.s: yeah, you should probably use both methods in trying to figure out what's wrong. a socket that wasn't found in the second method but you can see it's fd in /proc means that it's a socket that got created, never closed, and we don't have a reference to it anymore so we can't close it...
thanks