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:
Henrik Andersson 2013-03-25 15:56:32 +00:00
parent d1e8fdc90a
commit da3dcb8fbe

View File

@ -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 '?':