You need to sign in or sign up before continuing.
  1. 02 8月, 2016 2 次提交
  2. 24 6月, 2016 1 次提交
    • J
      Introduce virNetServerClientRemoteAddrStringURI · 23b6559d
      Ján Tomko 提交于
      Use it in virNetServerClientGetInfo to switch back to using
      the URI-format (separated by ':') instead of the SASL format
      (separated by ';').
      
      Also use it in the error message reported by virNetServerAddClient.
      23b6559d
  3. 19 5月, 2016 2 次提交
    • E
      admin: Introduce virAdmServerSetClientLimits · 8b1f0469
      Erik Skultety 提交于
      Opposite operation to virAdmServerGetClientLimits. Understandably though,
      setting values for current number of clients connected or still waiting
      for authentication does not make sense, since changes to these values are event
      dependent, i.e. a client connects - counter is increased. Thus only the limits
      to maximum clients connected and waiting for authentication can be set. Should
      a request for other controls to be set arrive (provided such a setting will
      be first introduced to the config), the set of configuration controls can be
      later expanded (thanks to typed params). This patch also introduces a
      constraint that the maximum number of clients waiting for authentication has to
      be less than the overall maximum number of clients connected and any attempt to
      violate this constraint will be denied.
      Signed-off-by: NErik Skultety <eskultet@redhat.com>
      8b1f0469
    • E
      virnetserver: Introduce server's client-related limits getters · abf29786
      Erik Skultety 提交于
      Add some trivial getters for client related attributes to virnetserver before
      any admin method can be introduced.
      Signed-off-by: NErik Skultety <eskultet@redhat.com>
      abf29786
  4. 03 5月, 2016 3 次提交
    • E
      admin: Introduce virAdmServerLookupClient · 52a2eef9
      Erik Skultety 提交于
      Just like with server-related APIs, before any of client-based APIs can be
      called, a reference to a client-side client object needs to be obtained. For
      this purpose, a lookup method should exist. Apart from the client retrieval
      logic, a new error code for non-existent client had to be added as well.
      Signed-off-by: NErik Skultety <eskultet@redhat.com>
      52a2eef9
    • E
      rpc: virnetserver: Support retrieval of a list of clients · 04bab54d
      Erik Skultety 提交于
      For now, the list copy is done simply by locking the whole server, walking the
      original and increasing the refcount on each object. We may want to change
      the list to a lockable object (like list of domains) later in the future if
      we discover some performance issues related to locking the whole server in
      order to walk the whole list of clients, possibly issuing some 'ForEach'
      callback.
      Signed-off-by: NErik Skultety <eskultet@redhat.com>
      04bab54d
    • E
      rpc: virnetserverclient: Identify clients by an integer ID · 5841d64d
      Erik Skultety 提交于
      Admin API needs a way of addressing specific clients. Unlike servers, which we
      are happy to address by names both because its name reflects its purpose (to
      some extent) and we only have two of them (so far), naming clients doesn't make
      any sense, since a) each client is an anonymous, i.e. not recognized after a
      disconnect followed by a reconnect, b) we can't predict what kind of requests
      it's going to send to daemon, and c) the are loads of them comming and going,
      so the only viable option is to use an ID which is of a reasonably wide data
      type.
      Signed-off-by: NErik Skultety <eskultet@redhat.com>
      5841d64d
  5. 18 4月, 2016 2 次提交
    • E
      admin: Introduce virAdmServerSetThreadPoolParameters · 93ab4da5
      Erik Skultety 提交于
      Since threadpool increments the current number of threads according to current
      load, i.e. how many jobs are waiting in the queue. The count however, is
      constrained by max and min limits of workers. The logic of this new API works
      like this:
          1) setting the minimum
              a) When the limit is increased, depending on the current number of
                 threads, new threads are possibly spawned if the current number of
                 threads is less than the new minimum limit
              b) Decreasing the minimum limit has no possible effect on the current
                 number of threads
          2) setting the maximum
              a) Icreasing the maximum limit has no immediate effect on the current
                 number of threads, it only allows the threadpool to spawn more
                 threads when new jobs, that would otherwise end up queued, arrive.
              b) Decreasing the maximum limit may affect the current number of
                 threads, if the current number of threads is less than the new
                 maximum limit. Since there may be some ongoing time-consuming jobs
                 that would effectively block this API from killing any threads.
                 Therefore, this API is asynchronous with best-effort execution,
                 i.e. the necessary number of workers will be terminated once they
                 finish their previous job, unless other workers had already
                 terminated, decreasing the limit to the requested value.
          3) setting priority workers
              - both increase and decrease in count of these workers have an
                immediate impact on the current number of workers, new ones will be
                spawned or some of them get terminated respectively.
      Signed-off-by: NErik Skultety <eskultet@redhat.com>
      93ab4da5
    • E
      admin: Introduce virAdmServerGethreadPoolParameters · caa16d31
      Erik Skultety 提交于
      New API to retrieve current server workerpool specs. Since it uses typed
      parameters, more specs to retrieve can be further included in the pool of
      supported ones.
      Signed-off-by: NErik Skultety <eskultet@redhat.com>
      caa16d31
  6. 11 3月, 2016 1 次提交
  7. 09 10月, 2015 1 次提交
    • M
      virJSONValueArraySize: return ssize_t · 4f77c48c
      Michal Privoznik 提交于
      The internal representation of a JSON array counts the items in
      size_t. However, for some reason, when asking for the count it's
      reported as int. Firstly, we need the function to return a signed
      type as it's returning -1 on an error. But, not every system has
      integer the same size as size_t. Therefore, lets return ssize_t.
      Signed-off-by: NMichal Privoznik <mprivozn@redhat.com>
      4f77c48c
  8. 10 8月, 2015 1 次提交
    • M
      rpc: Remove keepalive_required option · a8743c39
      Martin Kletzander 提交于
      Since its introduction in 2011 (particularly in commit f4324e32),
      the option doesn't work.  It just effectively disables all incoming
      connections.  That's because the client private data that contain the
      'keepalive_supported' boolean, are initialized to zeroes so the bool is
      false and the only other place where the bool is used is when checking
      whether the client supports keepalive.  Thus, according to the server,
      no client supports keepalive.
      
      Removing this instead of fixing it is better because a) apparently
      nobody ever tried it since 2011 (4 years without one month) and b) we
      cannot know whether the client supports keepalive until we get a ping or
      pong keepalive packet.  And that won't happen until after we dispatched
      the ConnectOpen call.
      
      Another two reasons would be c) the keepalive_required was tracked on
      the server level, but keepalive_supported was in private data of the
      client as well as the check that was made in the remote layer, thus
      making all other instances of virNetServer miss this feature unless they
      all implemented it for themselves and d) we can always add it back in
      case there is a request and a use-case for it.
      Signed-off-by: NMartin Kletzander <mkletzan@redhat.com>
      a8743c39
  9. 16 6月, 2015 3 次提交
  10. 15 6月, 2015 1 次提交
  11. 05 6月, 2015 1 次提交
  12. 14 5月, 2015 2 次提交
  13. 15 11月, 2014 1 次提交
  14. 29 10月, 2014 1 次提交
    • E
      maint: avoid static zero init in helpers · ff99c791
      Eric Blake 提交于
      C guarantees that static variables are zero-initialized.  Some older
      compilers (and also gcc -fno-zero-initialized-in-bss) create larger
      binaries if you explicitly zero-initialize a static variable.
      
      * src/conf/nwfilter_conf.c: Fix initialization.
      * src/cpu/cpu_x86.c: Likewise.
      * src/interface/interface_backend_netcf.c: Likewise.
      * src/locking/lock_daemon.c: Likewise.
      * src/locking/lock_driver_lockd.c: Likewise.
      * src/locking/lock_driver_sanlock.c: Likewise.
      * src/network/bridge_driver.c: Likewise.
      * src/node_device/node_device_udev.c: Likewise.
      * src/nwfilter/nwfilter_learnipaddr.c: Likewise.
      * src/rpc/virnetserver.c: Likewise.
      * src/security/security_selinux.c
      (virSecuritySELinuxGenSecurityLabel): Likewise.
      Signed-off-by: NEric Blake <eblake@redhat.com>
      ff99c791
  15. 25 9月, 2014 1 次提交
    • M
      virnetserver: Raise log level of max_clients related messages · cb5de655
      Michal Privoznik 提交于
      We have these configuration knobs, like max_clients and
      max_anonymous_clients. They limit the number of clients
      connected.  Whenever the limit is reached, the daemon stops
      accepting new ones and resumes if one of the connected clients
      disconnects. If that's the case, a debug message is printed into
      the logs. And when the daemon starts over to accept new clients
      too. However, the problem is the messages have debug priority.
      This may be unfortunate, because if the daemon stops accepting
      new clients all of a sudden, and users don't have debug logs
      enabled they have no idea what's going on. Raise the messages
      level to INFO at least.
      Signed-off-by: NMichal Privoznik <mprivozn@redhat.com>
      cb5de655
  16. 25 3月, 2014 1 次提交
  17. 21 3月, 2014 1 次提交
  18. 18 3月, 2014 5 次提交
  19. 10 3月, 2014 1 次提交
  20. 24 2月, 2014 1 次提交
    • M
      virNetServerRun: Notify systemd that we're accepting clients · 68954fb2
      Michal Privoznik 提交于
      Systemd does not forget about the cases, where client service needs to
      wait for daemon service to initialize and start accepting new clients.
      Setting a dependency in client is not enough as systemd doesn't know
      when the daemon has initialized itself and started accepting new
      clients. However, it offers a mechanism to solve this. The daemon needs
      to call a special systemd function by which the daemon tells "I'm ready
      to accept new clients". This is exactly what we need with
      libvirtd-guests (client) and libvirtd (daemon). So now, with this
      change, libvirt-guests.service is invoked not any sooner than
      libvirtd.service calls the systemd notify function.
      Signed-off-by: NMichal Privoznik <mprivozn@redhat.com>
      68954fb2
  21. 22 10月, 2013 1 次提交
  22. 05 8月, 2013 1 次提交
    • M
      RPC: Don't accept client if it would overcommit max_clients · 2737aaaf
      Michal Privoznik 提交于
      Currently, even if max_client limit is hit, we accept() incoming
      connection request, but close it immediately. This has disadvantage of
      not using listen() queue. We should accept() only those clients we
      know we can serve and let all other wait in the (limited) queue.
      2737aaaf
  23. 11 7月, 2013 1 次提交
  24. 10 7月, 2013 1 次提交
  25. 06 6月, 2013 1 次提交
  26. 23 5月, 2013 1 次提交
  27. 21 5月, 2013 1 次提交
  28. 19 2月, 2013 1 次提交
    • J
      rpc: Avoid deadlock when closing client connection · 921af429
      Jiri Denemark 提交于
      We need to drop the server lock before calling virObjectUnlock(client)
      since in case we had the last reference to the client, its dispose
      callback would be called and that could possibly try to lock the server
      and cause a deadlock. This is exactly what happens when there is only
      one QEMU domain running and it is marked to be autodestroyed when the
      connection dies. This results in qemuProcessAutoDestroy ->
      qemuProcessStop -> virNetServerRemoveShutdownInhibition call sequence,
      where the last function locks the server.
      921af429