Changeset 59 in code for trunk/partage.go


Ignore:
Timestamp:
Jan 18, 2022, 6:46:16 AM (3 years ago)
Author:
dev
Message:

Add workaround for when removing the socket file is not possible

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/partage.go

    r51 r59  
    328328
    329329        if conf.listen[0] == '/' {
    330                 listener, err = net.Listen("unix", conf.listen)
    331                 if err != nil {
     330                /* Remove any stale socket */
     331                os.Remove(conf.listen)
     332                if listener, err = net.Listen("unix", conf.listen); err != nil {
    332333                        log.Fatal(err)
    333334                }
    334 
    335                 /* Ensure unix socket is removed on exit */
     335                defer listener.Close()
     336
     337                /*
     338                 * Ensure unix socket is removed on exit.
     339                 * Note: this might not work when dropping privileges…
     340                 */
    336341                defer os.Remove(conf.listen)
    337342                sigs := make(chan os.Signal, 1)
    338                 signal.Notify(sigs, syscall.SIGINT, syscall.SIGTERM)
     343                signal.Notify(sigs, os.Interrupt, os.Kill, syscall.SIGTERM)
    339344                go func() {
    340345                        _ = <-sigs
    341                         os.Remove(conf.listen)
     346                        listener.Close()
     347                        if err = os.Remove(conf.listen); err != nil {
     348                                log.Fatal(err)
     349                        }
    342350                        os.Exit(0)
    343351                }()
    344352        } else {
    345                 listener, err = net.Listen("tcp", conf.listen)
    346                 if err != nil {
     353                if listener, err = net.Listen("tcp", conf.listen); err != nil {
    347354                        log.Fatal(err)
    348355                }
     356                defer listener.Close()
    349357        }
    350358
Note: See TracChangeset for help on using the changeset viewer.