]> git.ipfire.org Git - thirdparty/libvirt.git/commitdiff
Refactor impl of the virNetServerClientNew method
authorDaniel P. Berrange <berrange@redhat.com>
Thu, 9 Aug 2012 11:52:48 +0000 (12:52 +0100)
committerDaniel P. Berrange <berrange@redhat.com>
Mon, 20 Aug 2012 12:34:30 +0000 (13:34 +0100)
In preparation for adding further constructors, refactor
the virNetServerClientNew method to move most of the code
into a common virNetServerClientNewInternal helper API.

Signed-off-by: Daniel P. Berrange <berrange@redhat.com>
src/rpc/virnetserverclient.c

index c9703fd8c6ee2edb8cc3aa7d2e8523dbc1b6e111..acd2b4da870db7b3f57f6857fadb913c80798281 100644 (file)
@@ -336,19 +336,15 @@ static void virNetServerClientSockTimerFunc(int timer,
 }
 
 
-virNetServerClientPtr virNetServerClientNew(virNetSocketPtr sock,
-                                            int auth,
-                                            bool readonly,
-                                            size_t nrequests_max,
-                                            virNetTLSContextPtr tls,
-                                            virNetServerClientPrivNew privNew,
-                                            virFreeCallback privFree,
-                                            void *privOpaque)
+static virNetServerClientPtr
+virNetServerClientNewInternal(virNetSocketPtr sock,
+                              int auth,
+                              bool readonly,
+                              size_t nrequests_max,
+                              virNetTLSContextPtr tls)
 {
     virNetServerClientPtr client;
 
-    VIR_DEBUG("sock=%p auth=%d tls=%p", sock, auth, tls);
-
     if (virNetServerClientInitialize() < 0)
         return NULL;
 
@@ -381,14 +377,6 @@ virNetServerClientPtr virNetServerClientNew(virNetSocketPtr sock,
     }
     client->nrequests = 1;
 
-    if (privNew) {
-        if (!(client->privateData = privNew(client, privOpaque))) {
-            virObjectUnref(client);
-            goto error;
-        }
-        client->privateDataFreeFunc = privFree;
-    }
-
     PROBE(RPC_SERVER_CLIENT_NEW,
           "client=%p sock=%p",
           client, client->sock);
@@ -401,6 +389,34 @@ error:
 }
 
 
+virNetServerClientPtr virNetServerClientNew(virNetSocketPtr sock,
+                                            int auth,
+                                            bool readonly,
+                                            size_t nrequests_max,
+                                            virNetTLSContextPtr tls,
+                                            virNetServerClientPrivNew privNew,
+                                            virFreeCallback privFree,
+                                            void *privOpaque)
+{
+    virNetServerClientPtr client;
+
+    VIR_DEBUG("sock=%p auth=%d tls=%p", sock, auth, tls);
+
+    if (!(client = virNetServerClientNewInternal(sock, auth, readonly, nrequests_max, tls)))
+        return NULL;
+
+    if (privNew) {
+        if (!(client->privateData = privNew(client, privOpaque))) {
+            virObjectUnref(client);
+            return NULL;
+        }
+        client->privateDataFreeFunc = privFree;
+    }
+
+    return client;
+}
+
+
 int virNetServerClientGetAuth(virNetServerClientPtr client)
 {
     int auth;