svn rev #24145: trunk/src/lib/kadm5/clnt/

ghudson@MIT.EDU ghudson at MIT.EDU
Fri Jun 25 18:14:53 EDT 2010


http://src.mit.edu/fisheye/changelog/krb5/?cs=24145
Commit By: ghudson
Log Message:
Simplify the iprop conditionalization of _kadm5_init_any().



Changed Files:
U   trunk/src/lib/kadm5/clnt/client_init.c
Modified: trunk/src/lib/kadm5/clnt/client_init.c
===================================================================
--- trunk/src/lib/kadm5/clnt/client_init.c	2010-06-22 13:09:58 UTC (rev 24144)
+++ trunk/src/lib/kadm5/clnt/client_init.c	2010-06-25 22:14:53 UTC (rev 24145)
@@ -183,8 +183,10 @@
     struct hostent *hp;
     int fd;
 
-    char *iprop_svc;
-    int iprop_enable = 0;
+    krb5_boolean iprop_enable;
+    int port;
+    rpcprog_t rpc_prog;
+    rpcvers_t rpc_vers;
     char full_svcname[BUFSIZ];
     char *realm;
     krb5_ccache ccache;
@@ -311,34 +313,26 @@
      * If the service_name and client_name are iprop-centric,
      * we need to clnttcp_create to the appropriate RPC prog.
      */
-    iprop_svc = strdup(KIPROP_SVC_NAME);
-    if (iprop_svc == NULL)
-        return ENOMEM;
+    iprop_enable = (service_name != NULL &&
+                    strstr(service_name, KIPROP_SVC_NAME) != NULL &&
+                    strstr(client_name, KIPROP_SVC_NAME) != NULL);
+    if (iprop_enable) {
+        port = handle->params.iprop_port;
+        rpc_prog = KRB5_IPROP_PROG;
+        rpc_vers = KRB5_IPROP_VERS;
+    } else {
+        port = handle->params.kadmind_port;
+        rpc_prog = KADM;
+        rpc_vers = KADMVERS;
+    }
 
-    if (service_name != NULL &&
-        (strstr(service_name, iprop_svc) != NULL) &&
-        (strstr(client_name, iprop_svc) != NULL))
-        iprop_enable = 1;
-    else
-        iprop_enable = 0;
-
-    free(iprop_svc);
-
     memset(&addr, 0, sizeof(addr));
     addr.sin_family = hp->h_addrtype;
     (void) memcpy(&addr.sin_addr, hp->h_addr, sizeof(addr.sin_addr));
-    if (iprop_enable)
-        addr.sin_port = htons((u_short) handle->params.iprop_port);
-    else
-        addr.sin_port = htons((u_short) handle->params.kadmind_port);
+    addr.sin_port = htons((u_short) port);
 
     fd = RPC_ANYSOCK;
-
-    if (iprop_enable) {
-        handle->clnt = clnttcp_create(&addr, KRB5_IPROP_PROG, KRB5_IPROP_VERS,
-                                      &fd, 0, 0);
-    } else
-        handle->clnt = clnttcp_create(&addr, KADM, KADMVERS, &fd, 0, 0);
+    handle->clnt = clnttcp_create(&addr, rpc_prog, rpc_vers, &fd, 0, 0);
     if (handle->clnt == NULL) {
         code = KADM5_RPC_ERROR;
 #ifdef DEBUG
@@ -366,7 +360,7 @@
      * Bypass the remainder of the code and return straightaway
      * if the gss service requested is kiprop
      */
-    if (iprop_enable == 1) {
+    if (iprop_enable) {
         code = 0;
         *server_handle = (void *) handle;
         goto cleanup;




More information about the cvs-krb5 mailing list