start using getarg
git-svn-id: svn://svn.h5l.se/heimdal/trunk/heimdal@11225 ec53bebd-3082-4978-b11e-865c3cabbd6b
This commit is contained in:
@@ -36,15 +36,52 @@
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
#include "ftp_locl.h"
|
#include "ftp_locl.h"
|
||||||
|
#include <getarg.h>
|
||||||
|
|
||||||
RCSID("$Id$");
|
RCSID("$Id$");
|
||||||
|
|
||||||
|
static int help_flag;
|
||||||
|
static int version_flag;
|
||||||
|
static int debug_flag;
|
||||||
|
|
||||||
|
struct getargs getargs[] = {
|
||||||
|
{ NULL, 'd', arg_flag, &debug_flag,
|
||||||
|
"debug", NULL },
|
||||||
|
{ NULL, 'g', arg_negative_flag, &doglob,
|
||||||
|
"disables globbing", NULL},
|
||||||
|
{ NULL, 'i', arg_negative_flag, &interactive,
|
||||||
|
"Turn off interactive prompting", NULL},
|
||||||
|
{ NULL, 'l', arg_negative_flag, &lineedit,
|
||||||
|
"Turn off line editing", NULL},
|
||||||
|
{ NULL, 'p', arg_flag, &passivemode,
|
||||||
|
"passive mode", NULL},
|
||||||
|
{ NULL, 't', arg_counter, &trace,
|
||||||
|
"Packet tracing", NULL},
|
||||||
|
{ NULL, 'v', arg_counter, &verbose,
|
||||||
|
"verbosity", NULL},
|
||||||
|
{ NULL, 'K', arg_negative_flag, &use_kerberos,
|
||||||
|
"Disable kerberos authentication", NULL},
|
||||||
|
{ "version", 0, arg_flag, &version_flag },
|
||||||
|
{ "help", 'h', arg_flag, &help_flag },
|
||||||
|
};
|
||||||
|
|
||||||
|
static int num_args = sizeof(getargs) / sizeof(getargs[0]);
|
||||||
|
|
||||||
|
static void
|
||||||
|
usage(int ecode)
|
||||||
|
{
|
||||||
|
arg_printusage(getargs, num_args, NULL, "[host [port]]");
|
||||||
|
exit(ecode);
|
||||||
|
}
|
||||||
|
|
||||||
int
|
int
|
||||||
main(int argc, char **argv)
|
main(int argc, char **argv)
|
||||||
{
|
{
|
||||||
int ch, top;
|
int top;
|
||||||
struct passwd *pw = NULL;
|
struct passwd *pw = NULL;
|
||||||
char homedir[MaxPathLen];
|
char homedir[MaxPathLen];
|
||||||
struct servent *sp;
|
struct servent *sp;
|
||||||
|
int optind = 0;
|
||||||
|
|
||||||
setprogname(argv[0]);
|
setprogname(argv[0]);
|
||||||
|
|
||||||
@@ -58,50 +95,20 @@ main(int argc, char **argv)
|
|||||||
passivemode = 0; /* passive mode not active */
|
passivemode = 0; /* passive mode not active */
|
||||||
use_kerberos = 1;
|
use_kerberos = 1;
|
||||||
|
|
||||||
while ((ch = getopt(argc, argv, "dgilnptvK")) != -1) {
|
if(getarg(getargs, num_args, argc, argv, &optind))
|
||||||
switch (ch) {
|
usage(1);
|
||||||
case 'd':
|
if(help_flag)
|
||||||
options |= SO_DEBUG;
|
usage(0);
|
||||||
debug++;
|
if(version_flag) {
|
||||||
break;
|
print_version(NULL);
|
||||||
|
exit(0);
|
||||||
case 'g':
|
|
||||||
doglob = 0;
|
|
||||||
break;
|
|
||||||
|
|
||||||
case 'i':
|
|
||||||
interactive = 0;
|
|
||||||
break;
|
|
||||||
|
|
||||||
case 'l':
|
|
||||||
lineedit = 0;
|
|
||||||
break;
|
|
||||||
case 'n':
|
|
||||||
autologin = 0;
|
|
||||||
break;
|
|
||||||
|
|
||||||
case 'p':
|
|
||||||
passivemode = 1;
|
|
||||||
break;
|
|
||||||
case 't':
|
|
||||||
trace++;
|
|
||||||
break;
|
|
||||||
|
|
||||||
case 'v':
|
|
||||||
verbose++;
|
|
||||||
break;
|
|
||||||
|
|
||||||
case 'K':
|
|
||||||
/* Disable Kerberos authentication */
|
|
||||||
use_kerberos = 0;
|
|
||||||
break;
|
|
||||||
|
|
||||||
default:
|
|
||||||
fprintf(stderr,
|
|
||||||
"usage: ftp [-dgilnptvK] [host [port]]\n");
|
|
||||||
exit(1);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (debug_flag) {
|
||||||
|
options |= SO_DEBUG;
|
||||||
|
debug++;
|
||||||
|
}
|
||||||
|
|
||||||
argc -= optind;
|
argc -= optind;
|
||||||
argv += optind;
|
argv += optind;
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user