s3:net rpc conf: setparm: introduce variables service_name, param_name, valstr for...
authorMichael Adam <obnox@samba.org>
Sun, 22 Sep 2013 07:11:55 +0000 (09:11 +0200)
committerMichael Adam <obnox@samba.org>
Tue, 24 Sep 2013 05:44:28 +0000 (07:44 +0200)
Signed-off-by: Michael Adam <obnox@samba.org>
Reviewed-by: Andrew Bartlett <abartlet@samba.org>
source3/utils/net_rpc_conf.c

index edf612088a665f172bff5b985a7e7a8e5973b04d..61555e26f49d64c39c7d7eb4a4b9e4e6712f7e4d 100644 (file)
@@ -1739,6 +1739,7 @@ static NTSTATUS rpc_conf_setparm_internal(struct net_context *c,
        struct winreg_String key, keyclass;
        enum winreg_CreateAction action = 0;
 
+       const char *service_name, *param_name, *valstr;
        const char *canon_valname;
        const char *canon_valstr;
 
@@ -1770,7 +1771,11 @@ static NTSTATUS rpc_conf_setparm_internal(struct net_context *c,
                goto error;
        }
 
-       key.name = argv[0];
+       service_name = argv[0];
+       param_name = argv[1];
+       valstr = argv[2];
+
+       key.name = service_name;
        keyclass.name = "";
 
        status = dcerpc_winreg_CreateKey(b, frame, &key_hnd, key, keyclass,
@@ -1779,13 +1784,13 @@ static NTSTATUS rpc_conf_setparm_internal(struct net_context *c,
 
        if (!(NT_STATUS_IS_OK(status))) {
                d_fprintf(stderr, _("ERROR: Could not create share key '%s'\n%s\n"),
-                               argv[0], nt_errstr(status));
+                         service_name, nt_errstr(status));
                goto error;
        }
 
        if (!W_ERROR_IS_OK(werr)) {
                d_fprintf(stderr, _("ERROR: Could not create share key '%s'\n%s\n"),
-                               argv[0], win_errstr(werr));
+                         service_name, win_errstr(werr));
                goto error;
        }
 
@@ -1793,22 +1798,23 @@ static NTSTATUS rpc_conf_setparm_internal(struct net_context *c,
                case REG_ACTION_NONE:
                        werr = WERR_CREATE_FAILED;
                        d_fprintf(stderr, _("ERROR: Could not create share key '%s'\n%s\n"),
-                               argv[0], win_errstr(werr));
+                                 service_name, win_errstr(werr));
                        goto error;
                case REG_CREATED_NEW_KEY:
                        DEBUG(5, ("net rpc conf setparm:"
-                                       "createkey created %s\n", argv[0]));
+                                 "createkey created %s\n", service_name));
                        break;
                case REG_OPENED_EXISTING_KEY:
                        DEBUG(5, ("net rpc conf setparm:"
-                                       "createkey opened existing %s\n", argv[0]));
+                                 "createkey opened existing %s\n",
+                                 service_name));
 
                        /* delete posibly existing value */
                        status = rpc_conf_del_value(frame,
                                                    b,
                                                    &key_hnd,
-                                                   argv[0],
-                                                   argv[1],
+                                                   service_name,
+                                                   param_name,
                                                    &werr);
 
                        if (!(NT_STATUS_IS_OK(status))) {
@@ -1826,28 +1832,31 @@ static NTSTATUS rpc_conf_setparm_internal(struct net_context *c,
         * check if parameter is valid for writing
         */
 
-       if (!lp_parameter_is_valid(argv[1])) {
-               d_fprintf(stderr, "Invalid parameter '%s' given.\n", argv[1]);
+       if (!lp_parameter_is_valid(param_name)) {
+               d_fprintf(stderr, "Invalid parameter '%s' given.\n",
+                         param_name);
                werr = WERR_INVALID_PARAM;
                goto error;
        }
 
-       if (!smbconf_reg_parameter_is_valid(argv[1])) {
+       if (!smbconf_reg_parameter_is_valid(param_name)) {
                d_fprintf(stderr, "Parameter '%s' not allowed in registry.\n",
-                         argv[1]);
+                         param_name);
                werr = WERR_INVALID_PARAM;
                goto error;
        }
 
-       if (!strequal(argv[0], "global") && lp_parameter_is_global(argv[1])) {
+       if (!strequal(service_name, "global") &&
+          lp_parameter_is_global(param_name))
+       {
                d_fprintf(stderr, "Global parameter '%s' not allowed in "
-                         "service definition ('%s').\n", argv[1],
-                         argv[0]);
+                         "service definition ('%s').\n", param_name,
+                         service_name);
                werr = WERR_INVALID_PARAM;
                goto error;
        }
 
-       if (!lp_canonicalize_parameter_with_value(argv[1], argv[2],
+       if (!lp_canonicalize_parameter_with_value(param_name, valstr,
                                                  &canon_valname,
                                                  &canon_valstr))
        {
@@ -1856,26 +1865,26 @@ static NTSTATUS rpc_conf_setparm_internal(struct net_context *c,
                 * So the value must be invalid.
                 */
                d_fprintf(stderr, "invalid value '%s' given for "
-                         "parameter '%s'\n", argv[1], argv[2]);
+                         "parameter '%s'\n", param_name, valstr);
                werr = WERR_INVALID_PARAM;
                goto error;
        }
 
        /* set the parameter */
        status = dcerpc_winreg_set_sz(frame, b, &share_hnd,
-                                       argv[1], argv[2], &werr);
+                                     param_name, valstr, &werr);
 
        if (!(NT_STATUS_IS_OK(status))) {
                d_fprintf(stderr, "ERROR: Could not set parameter '%s'"
                                " with value %s\n %s\n",
-                               argv[1], argv[2], nt_errstr(status));
+                               param_name, valstr, nt_errstr(status));
                goto error;
        }
 
        if (!(W_ERROR_IS_OK(werr))) {
                d_fprintf(stderr, "ERROR: Could not set parameter '%s'"
                                " with value %s\n %s\n",
-                               argv[1], argv[2], win_errstr(werr));
+                               param_name, valstr, win_errstr(werr));
                goto error;
        }