cli: 'restart' should close open files (VPP-1068) 17/13017/2
authorChris Luke <chrisy@flirble.org>
Wed, 13 Jun 2018 02:45:06 +0000 (22:45 -0400)
committerDamjan Marion <dmarion@me.com>
Wed, 13 Jun 2018 08:01:33 +0000 (08:01 +0000)
commit6edd36070cbe5f1fb5e5804edb19f8c395ba07f2
tree951fd43b8706ae67ddc0f8741bd1242ed14130bc
parent8a4a8c455aaa95a7ff15d8d46f52b24740d3ce88
cli: 'restart' should close open files (VPP-1068)

- On 'restart' close all registered files (except stdio) so that the
  new process has a clean start; in particular, CLI sockets, API
  sockets, tun/af_packet etc descriptors all need to close so they're
  not left open but unused by the new VPP process. To do this we iterate
  all the files registered for the polling mechanism and close() them.[1]
- While we're here, retain the original environment on 'restart';
  several things make use of it.

[1] An alternative mechanism would be to mark all files with CLOEXEC
  on opening; I think that is a little fragile for this fairly esoteric
  use case.

Change-Id: I81b4e261c4d3c4e2948981231be899824dd4e69f
Signed-off-by: Chris Luke <chrisy@flirble.org>
src/vlib/cli.c