Remove the use of getopt_long() introduced in previous commit.
Replace it with normal getopt() as we had before to prevent breaking build of rdesktop on other platforms like solaris. git-svn-id: svn://svn.code.sf.net/p/rdesktop/code/rdesktop/trunk@1706 423420c4-83ab-492f-b58f-81f9feb106b5
This commit is contained in:
parent
d1e8fdc90a
commit
da3dcb8fbe
60
rdesktop.c
60
rdesktop.c
@ -21,7 +21,6 @@
|
|||||||
|
|
||||||
#include <stdarg.h> /* va_list va_start va_end */
|
#include <stdarg.h> /* va_list va_start va_end */
|
||||||
#include <unistd.h> /* read close getuid getgid getpid getppid gethostname */
|
#include <unistd.h> /* read close getuid getgid getpid getppid gethostname */
|
||||||
#include <getopt.h>
|
|
||||||
#include <fcntl.h> /* open */
|
#include <fcntl.h> /* open */
|
||||||
#include <pwd.h> /* getpwuid */
|
#include <pwd.h> /* getpwuid */
|
||||||
#include <termios.h> /* tcgetattr tcsetattr */
|
#include <termios.h> /* tcgetattr tcsetattr */
|
||||||
@ -132,26 +131,10 @@ RD_BOOL g_rdpsnd = False;
|
|||||||
char g_codepage[16] = "";
|
char g_codepage[16] = "";
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
char *g_sc_csp_name = NULL; /* Smartcard CSP name */
|
char *g_sc_csp_name = NULL; /* Smartcard CSP name */
|
||||||
char *g_sc_reader_name = NULL;
|
char *g_sc_reader_name = NULL;
|
||||||
char *g_sc_card_name = NULL;
|
char *g_sc_card_name = NULL;
|
||||||
char *g_sc_container_name = NULL;
|
char *g_sc_container_name = NULL;
|
||||||
#define OPT_BASE 256
|
|
||||||
#define OPT_SC_CSP_NAME (OPT_BASE+1)
|
|
||||||
#define OPT_SC_READER_NAME (OPT_BASE+2)
|
|
||||||
#define OPT_SC_CARD_NAME (OPT_BASE+3)
|
|
||||||
#define OPT_SC_CONTAINER_NAME (OPT_BASE+4)
|
|
||||||
|
|
||||||
struct option longopts[] = {
|
|
||||||
{"sc-csp-name", 1, 0, OPT_SC_CSP_NAME},
|
|
||||||
{"sc-reader-name", 1, 0, OPT_SC_READER_NAME},
|
|
||||||
{"sc-card-name", 1, 0, OPT_SC_CARD_NAME},
|
|
||||||
{"sc-container-name", 1, 0, OPT_SC_CONTAINER_NAME},
|
|
||||||
{NULL}
|
|
||||||
};
|
|
||||||
|
|
||||||
extern RDPDR_DEVICE g_rdpdr_device[];
|
extern RDPDR_DEVICE g_rdpdr_device[];
|
||||||
extern uint32 g_num_devices;
|
extern uint32 g_num_devices;
|
||||||
@ -259,12 +242,12 @@ usage(char *program)
|
|||||||
fprintf(stderr, " -4: use RDP version 4\n");
|
fprintf(stderr, " -4: use RDP version 4\n");
|
||||||
fprintf(stderr, " -5: use RDP version 5 (default)\n");
|
fprintf(stderr, " -5: use RDP version 5 (default)\n");
|
||||||
#ifdef WITH_SCARD
|
#ifdef WITH_SCARD
|
||||||
fprintf(stderr, "\nCredSSP Smartcard hinting\n");
|
fprintf(stderr, " -o: name=value: Adds an additional option to rdesktop.\n");
|
||||||
fprintf(stderr, " --sc-csp-name Specifies the Crypto Service Provider name which\n");
|
fprintf(stderr, " sc-csp-name Specifies the Crypto Service Provider name which\n");
|
||||||
fprintf(stderr, " is used to authenticate the user by smartcard\n");
|
fprintf(stderr, " is used to authenticate the user by smartcard\n");
|
||||||
fprintf(stderr, " --sc-container-name Specifies the container name, this is usally the username\n");
|
fprintf(stderr, " sc-container-name Specifies the container name, this is usally the username\n");
|
||||||
fprintf(stderr, " --sc-reader-name Smartcard reader name to use\n");
|
fprintf(stderr, " sc-reader-name Smartcard reader name to use\n");
|
||||||
fprintf(stderr, " --sc-card-name Specifies the card name of the smartcard to use\n");
|
fprintf(stderr, " sc-card-name Specifies the card name of the smartcard to use\n");
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
fprintf(stderr, "\n");
|
fprintf(stderr, "\n");
|
||||||
@ -549,8 +532,8 @@ main(int argc, char *argv[])
|
|||||||
#else
|
#else
|
||||||
#define VNCOPT
|
#define VNCOPT
|
||||||
#endif
|
#endif
|
||||||
while ((c = getopt_long(argc, argv,
|
while ((c = getopt(argc, argv,
|
||||||
VNCOPT "A:u:L:d:s:c:p:n:k:g:fbBeEitmzCDKS:T:NX:a:x:Pr:045h?", longopts, &longidx)) != -1)
|
VNCOPT "A:u:L:d:s:c:p:n:k:g:o:fbBeEitmzCDKS:T:NX:a:x:Pr:045h?")) != -1)
|
||||||
{
|
{
|
||||||
switch (c)
|
switch (c)
|
||||||
{
|
{
|
||||||
@ -896,21 +879,24 @@ main(int argc, char *argv[])
|
|||||||
g_rdp_version = RDP_V5;
|
g_rdp_version = RDP_V5;
|
||||||
break;
|
break;
|
||||||
#if WITH_SCARD
|
#if WITH_SCARD
|
||||||
case OPT_SC_CSP_NAME:
|
case 'o':
|
||||||
g_sc_csp_name = strdup(optarg);
|
{
|
||||||
break;
|
char *p = strchr(optarg, '=');
|
||||||
|
if (p == NULL) {
|
||||||
|
warning("Skipping option '%s' specified, lacks name=value format.\n");
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
case OPT_SC_READER_NAME:
|
if (strncmp(optarg, "sc-csp-name", strlen("sc-scp-name")) == 0)
|
||||||
g_sc_reader_name = strdup(optarg);
|
g_sc_csp_name = strdup(p+1);
|
||||||
break;
|
else if (strncmp(optarg, "sc-reader-name", strlen("sc-reader-name")) == 0)
|
||||||
|
g_sc_reader_name = strdup(p+1);
|
||||||
|
else if (strncmp(optarg, "sc-card-name", strlen("sc-card-name")) == 0)
|
||||||
|
g_sc_card_name = strdup(p+1);
|
||||||
|
else if (strncmp(optarg, "sc-container-name", strlen("sc-container-name")) == 0)
|
||||||
|
g_sc_container_name = strdup(p+1);
|
||||||
|
|
||||||
case OPT_SC_CARD_NAME:
|
} break;
|
||||||
g_sc_card_name = strdup(optarg);
|
|
||||||
break;
|
|
||||||
|
|
||||||
case OPT_SC_CONTAINER_NAME:
|
|
||||||
g_sc_container_name = strdup(optarg);
|
|
||||||
break;
|
|
||||||
#endif
|
#endif
|
||||||
case 'h':
|
case 'h':
|
||||||
case '?':
|
case '?':
|
||||||
|
Loading…
Reference in New Issue
Block a user