It appears that GAIM doesn't recognize that its SOCKS server has disappeared. The following strace shows that it ignores read() telling it that there's no more data and that it should close the socket.
[pid 13038] gettimeofday({1156329645, 910207}, NULL) = 0 [pid 13038] poll([{fd=3, events=POLLIN}, {fd=4, events=POLLIN}, {fd=6, events=POLLIN}, {fd=10, events=POLLIN|POLLPRI}, {fd=12, events=POLLIN}, {fd=13, events=POLLIN}, {fd=17, events=POLLIN, revents=POLLIN}], 7, 0) = 1 [pid 13038] read(17, "", 512) = 0 [pid 13038] ioctl(3, FIONREAD, [0]) = 0 [pid 13038] gettimeofday({1156329645, 910545}, NULL) = 0 [pid 13038] poll([{fd=3, events=POLLIN}, {fd=4, events=POLLIN}, {fd=6, events=POLLIN}, {fd=10, events=POLLIN|POLLPRI}, {fd=12, events=POLLIN}, {fd=13, events=POLLIN}, {fd=17, events=POLLIN, revents=POLLIN}], 7, 0) = 1 [pid 13038] read(17, "", 512) = 0 [pid 13038] ioctl(3, FIONREAD, [0]) = 0
It appears that GAIM doesn't recognize that its SOCKS server has disappeared.
The following strace shows that it ignores read() telling it that there's no more
data and that it should close the socket.
[pid 13038] gettimeofday( {1156329645, 910207}, NULL) = 0 POLLIN| POLLPRI} , {fd=12, events=POLLIN}, {fd=13, events=POLLIN}, {fd=17, events=POLLIN, revents=POLLIN}], 7, 0) = 1 {1156329645, 910545}, NULL) = 0 POLLIN| POLLPRI} , {fd=12, events=POLLIN}, {fd=13, events=POLLIN}, {fd=17, events=POLLIN, revents=POLLIN}], 7, 0) = 1
[pid 13038] poll([{fd=3, events=POLLIN}, {fd=4, events=POLLIN}, {fd=6, events=POLLIN}, {fd=10, events=
[pid 13038] read(17, "", 512) = 0
[pid 13038] ioctl(3, FIONREAD, [0]) = 0
[pid 13038] gettimeofday(
[pid 13038] poll([{fd=3, events=POLLIN}, {fd=4, events=POLLIN}, {fd=6, events=POLLIN}, {fd=10, events=
[pid 13038] read(17, "", 512) = 0
[pid 13038] ioctl(3, FIONREAD, [0]) = 0