r23792: convert Samba4 to GPLv3
[samba.git] / source4 / lib / cmdline / popt_common.c
index 33959874b74b305600cb8c387a082761369c0156..904a8738925fc816a711f89ed61233fe0702ab07 100644 (file)
@@ -7,7 +7,7 @@
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
-   the Free Software Foundation; either version 2 of the License, or
+   the Free Software Foundation; either version 3 of the License, or
    (at your option) any later version.
    
    This program is distributed in the hope that it will be useful,
@@ -16,8 +16,7 @@
    GNU General Public License for more details.
    
    You should have received a copy of the GNU General Public License
-   along with this program; if not, write to the Free Software
-   Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+   along with this program.  If not, see <http://www.gnu.org/licenses/>.
 */
 
 #include "includes.h"
@@ -32,6 +31,7 @@
  *             -l,--log-base
  *             -n,--netbios-name
  *             -W,--workgroup
+ *             --realm
  *             -i,--scope
  */
 
@@ -68,6 +68,10 @@ static void popt_common_callback(poptContext con,
 
                /* and logging */
                setup_logging(pname, DEBUG_STDOUT);
+
+               if (getenv("SMB_CONF_PATH")) {
+                       lp_set_cmdline("config file", getenv("SMB_CONF_PATH"));
+               }
                return;
        }
 
@@ -99,15 +103,19 @@ static void popt_common_callback(poptContext con,
 
        case 'l':
                if (arg) {
-                       char *logfile = talloc_asprintf(NULL, "%s/log.%s", arg, pname);
-                       lp_set_cmdline("log file", logfile);
-                       talloc_free(logfile);
+                       char *new_logfile = talloc_asprintf(NULL, "%s/log.%s", arg, pname);
+                       lp_set_cmdline("log file", new_logfile);
+                       talloc_free(new_logfile);
                }
                break;
                
        case 'W':
                lp_set_cmdline("workgroup", arg);
                break;
+
+       case 'r':
+               lp_set_cmdline("realm", arg);
+               break;
                
        case 'n':
                lp_set_cmdline("netbios name", arg);
@@ -118,7 +126,7 @@ static void popt_common_callback(poptContext con,
                break;
 
        case 'm':
-               lp_set_cmdline("max protocol", arg);
+               lp_set_cmdline("client max protocol", arg);
                break;
 
        case 'R':
@@ -144,18 +152,19 @@ static void popt_common_callback(poptContext con,
 }
 
 struct poptOption popt_common_connection[] = {
-       { NULL, 0, POPT_ARG_CALLBACK, popt_common_callback },
+       { NULL, 0, POPT_ARG_CALLBACK, (void *)popt_common_callback },
        { "name-resolve", 'R', POPT_ARG_STRING, NULL, 'R', "Use these name resolution services only", "NAME-RESOLVE-ORDER" },
        { "socket-options", 'O', POPT_ARG_STRING, NULL, 'O', "socket options to use", "SOCKETOPTIONS" },
        { "netbiosname", 'n', POPT_ARG_STRING, NULL, 'n', "Primary netbios name", "NETBIOSNAME" },
        { "workgroup", 'W', POPT_ARG_STRING, NULL, 'W', "Set the workgroup name", "WORKGROUP" },
+       { "realm", 0, POPT_ARG_STRING, NULL, 'r', "Set the realm name", "REALM" },
        { "scope", 'i', POPT_ARG_STRING, NULL, 'i', "Use this Netbios scope", "SCOPE" },
        { "maxprotocol", 'm', POPT_ARG_STRING, NULL, 'm', "Set max protocol level", "MAXPROTOCOL" },
-       POPT_TABLEEND
+       { NULL }
 };
 
 struct poptOption popt_common_samba[] = {
-       { NULL, 0, POPT_ARG_CALLBACK|POPT_CBFLAG_PRE|POPT_CBFLAG_POST, popt_common_callback },
+       { NULL, 0, POPT_ARG_CALLBACK|POPT_CBFLAG_PRE|POPT_CBFLAG_POST, (void *)popt_common_callback },
        { "debuglevel",   'd', POPT_ARG_STRING, NULL, 'd', "Set debug level", "DEBUGLEVEL" },
        { "debug-stderr", 0, POPT_ARG_NONE, NULL, OPT_DEBUG_STDERR, "Send debug output to STDERR", NULL },
        { "configfile",   's', POPT_ARG_STRING, NULL, 's', "Use alternative configuration file", "CONFIGFILE" },
@@ -163,12 +172,12 @@ struct poptOption popt_common_samba[] = {
        { "log-basename", 'l', POPT_ARG_STRING, NULL, 'l', "Basename for log/debug files", "LOGFILEBASE" },
        { "leak-report",     0, POPT_ARG_NONE, NULL, OPT_LEAK_REPORT, "enable talloc leak reporting on exit", NULL },   
        { "leak-report-full",0, POPT_ARG_NONE, NULL, OPT_LEAK_REPORT_FULL, "enable full talloc leak reporting on exit", NULL },
-       POPT_TABLEEND
+       { NULL }
 };
 
 struct poptOption popt_common_version[] = {
-       { NULL, 0, POPT_ARG_CALLBACK, popt_common_callback },
+       { NULL, 0, POPT_ARG_CALLBACK, (void *)popt_common_callback },
        { "version", 'V', POPT_ARG_NONE, NULL, 'V', "Print version" },
-       POPT_TABLEEND
+       { NULL }
 };