This cause problems since the number of open file descriptors are
normaly limited causing errors such as:
Can't create RFCOMM TTY: Too many open files in system
We can't call g_remove_source for the child watch since then nobody will
call waitpid when the child dies. Instead set client->child_pid to 0
after sending SIGTERM so that the child watch function doesn't try to do
cleanup to processes that were already cleared (e.g. if an old phonet-at
process stays around while a new DUN client gets connected).
The patch is based upon the initial investigation and findings by
Dmitriy Paliy <dmitriy.paliy@nokia.com>.
The code used to create the port stored the id in a local variable
instead of storing it in the client data which is used to release the
port once disconnected.