提交 b41780e4 编写于 作者: D Daniel P. Berrange 提交者: Daniel P. Berrangé

rpc: pass virNetServer to post-exec restart callback in typesafe manner

The virNetServer class is passing a pointer to itself to the
virNetServerClient as a 'void *' pointer. This is presumably due to fact
that the virnetserverclient.h file doesn't see the virNetServerPtr
typedef. The typedef is easily movable though, which lets us get
typesafe parameter passing, removing the confusion of passing two
distinct 'void *' pointers to one method.
Signed-off-by: NDaniel P. Berrange <berrange@redhat.com>
上级 2c76fa91
...@@ -540,12 +540,12 @@ virNetServerPtr virNetServerNewPostExecRestart(virJSONValuePtr object, ...@@ -540,12 +540,12 @@ virNetServerPtr virNetServerNewPostExecRestart(virJSONValuePtr object,
goto error; goto error;
} }
if (!(client = virNetServerClientNewPostExecRestart(child, if (!(client = virNetServerClientNewPostExecRestart(srv,
child,
clientPrivNewPostExecRestart, clientPrivNewPostExecRestart,
clientPrivPreExecRestart, clientPrivPreExecRestart,
clientPrivFree, clientPrivFree,
clientPrivOpaque, clientPrivOpaque)))
srv)))
goto error; goto error;
if (virNetServerAddClient(srv, client) < 0) { if (virNetServerAddClient(srv, client) < 0) {
......
...@@ -479,12 +479,12 @@ virNetServerClientPtr virNetServerClientNew(unsigned long long id, ...@@ -479,12 +479,12 @@ virNetServerClientPtr virNetServerClientNew(unsigned long long id,
} }
virNetServerClientPtr virNetServerClientNewPostExecRestart(virJSONValuePtr object, virNetServerClientPtr virNetServerClientNewPostExecRestart(virNetServerPtr srv,
virJSONValuePtr object,
virNetServerClientPrivNewPostExecRestart privNew, virNetServerClientPrivNewPostExecRestart privNew,
virNetServerClientPrivPreExecRestart privPreExecRestart, virNetServerClientPrivPreExecRestart privPreExecRestart,
virFreeCallback privFree, virFreeCallback privFree,
void *privOpaque, void *privOpaque)
void *opaque)
{ {
virJSONValuePtr child; virJSONValuePtr child;
virNetServerClientPtr client = NULL; virNetServerClientPtr client = NULL;
...@@ -540,12 +540,12 @@ virNetServerClientPtr virNetServerClientNewPostExecRestart(virJSONValuePtr objec ...@@ -540,12 +540,12 @@ virNetServerClientPtr virNetServerClientNewPostExecRestart(virJSONValuePtr objec
if (!virJSONValueObjectHasKey(object, "id")) { if (!virJSONValueObjectHasKey(object, "id")) {
/* no ID found in, a new one must be generated */ /* no ID found in, a new one must be generated */
id = virNetServerNextClientID((virNetServerPtr) opaque); id = virNetServerNextClientID(srv);
} else { } else {
if (virJSONValueObjectGetNumberUlong(object, "id", &id) < 0) { if (virJSONValueObjectGetNumberUlong(object, "id", &id) < 0) {
virReportError(VIR_ERR_INTERNAL_ERROR, "%s", virReportError(VIR_ERR_INTERNAL_ERROR, "%s",
_("Malformed id field in JSON state document")); _("Malformed id field in JSON state document"));
return NULL; return NULL;
} }
} }
......
...@@ -30,6 +30,9 @@ ...@@ -30,6 +30,9 @@
# include "virobject.h" # include "virobject.h"
# include "virjson.h" # include "virjson.h"
typedef struct _virNetServer virNetServer;
typedef virNetServer *virNetServerPtr;
typedef struct _virNetServerClient virNetServerClient; typedef struct _virNetServerClient virNetServerClient;
typedef virNetServerClient *virNetServerClientPtr; typedef virNetServerClient *virNetServerClientPtr;
...@@ -71,12 +74,12 @@ virNetServerClientPtr virNetServerClientNew(unsigned long long id, ...@@ -71,12 +74,12 @@ virNetServerClientPtr virNetServerClientNew(unsigned long long id,
virFreeCallback privFree, virFreeCallback privFree,
void *privOpaque); void *privOpaque);
virNetServerClientPtr virNetServerClientNewPostExecRestart(virJSONValuePtr object, virNetServerClientPtr virNetServerClientNewPostExecRestart(virNetServerPtr srv,
virJSONValuePtr object,
virNetServerClientPrivNewPostExecRestart privNew, virNetServerClientPrivNewPostExecRestart privNew,
virNetServerClientPrivPreExecRestart privPreExecRestart, virNetServerClientPrivPreExecRestart privPreExecRestart,
virFreeCallback privFree, virFreeCallback privFree,
void *privOpaque, void *privOpaque);
void *opaque);
virJSONValuePtr virNetServerClientPreExecRestart(virNetServerClientPtr client); virJSONValuePtr virNetServerClientPreExecRestart(virNetServerClientPtr client);
......
...@@ -31,9 +31,6 @@ ...@@ -31,9 +31,6 @@
typedef struct _virNetDaemon virNetDaemon; typedef struct _virNetDaemon virNetDaemon;
typedef virNetDaemon *virNetDaemonPtr; typedef virNetDaemon *virNetDaemonPtr;
typedef struct _virNetServer virNetServer;
typedef virNetServer *virNetServerPtr;
typedef struct _virNetServerService virNetServerService; typedef struct _virNetServerService virNetServerService;
typedef virNetServerService *virNetServerServicePtr; typedef virNetServerService *virNetServerServicePtr;
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册