diff options
| author | Ned T. Crigler <crigler@users.sourceforge.net> | 2006-09-27 23:56:29 +0000 |
|---|---|---|
| committer | Ned T. Crigler <crigler@users.sourceforge.net> | 2006-09-27 23:56:29 +0000 |
| commit | 5dbd8fe920992ff576b89fe0ff7bd104a6b05191 (patch) | |
| tree | 74b0ce012d45b5e57102b7b3e114094825a3fc84 /main.c | |
| parent | e06f8dfcdf1dbf8ac6d12075c5da9f94a894f6a9 (diff) | |
Try to detect and remove stale sockets when dtach -A is used. Be
paranoid about this, and only remove the specified file if connect says
the connection was refused and stat says the file is a socket.
Also dtach -A now only tries to create the socket if the connection was
refused or the socket did not exist, instead of on any random error as
before.
Diffstat (limited to 'main.c')
| -rw-r--r-- | main.c | 9 |
1 files changed, 7 insertions, 2 deletions
@@ -256,8 +256,13 @@ main(int argc, char **argv) ** socket. */ if (attach_main(1) != 0) { - if (master_main(argv, 1) != 0) - return 1; + if (errno == ECONNREFUSED || errno == ENOENT) + { + if (errno == ECONNREFUSED) + unlink(sockname); + if (master_main(argv, 1) != 0) + return 1; + } return attach_main(0); } } |
