1 /* File generated by GAA 1.6.6
10 void serv_version(void);
17 #if defined(_WIN32) || defined(__WIN32__) || defined(WIN32) || defined(WINDOWS)
22 static void* gaa_malloc( size_t size) {
26 fprintf(stderr, "gaa: could not allocate memory");
32 static void __gaa_helpsingle(char short_name, char *name,
33 char *arg_desc, char *opt_help)
35 int col1, col3, col4, tabsize = 3, curr;
38 col1 = 5; /* Default values */
43 for(i = 0; i < col1; i++)
52 printf("-%c, ", short_name);
57 printf("-%c ", short_name);
63 printf("--%s ", name);
64 curr += 3 + strlen(name);
66 if(arg_desc && *arg_desc)
68 printf("%s ", arg_desc);
69 curr += 1 + strlen(arg_desc);
76 if(opt_help) /* let's print the option's help body */
78 const char *str = opt_help;
98 while((curr - col3) % tabsize != 0 && curr < col4);
105 for(i = 1; str[i] && str[i] != ' ' && str[i] != '\n'
106 && str[i] != '\t'; i++);
107 if(curr + i - 1 >= col4)
127 printf("GnuTLS test server\nUsage: gnutls-serv [options]\n\n\n");
128 __gaa_helpsingle('d', "debug", "integer ", "Enable debugging");
129 __gaa_helpsingle('g', "generate", "", "Generate Diffie-Hellman and RSA-EXPORT Parameters.");
130 __gaa_helpsingle('p', "port", "integer ", "The port to connect to.");
131 __gaa_helpsingle('q', "quiet", "", "Suppress some messages.");
132 __gaa_helpsingle(0, "nodb", "", "Does not use the resume database.");
133 __gaa_helpsingle(0, "noticket", "", "Does not issue session tickets.");
134 __gaa_helpsingle(0, "http", "", "Act as an HTTP Server.");
135 __gaa_helpsingle(0, "echo", "", "Act as an Echo Server.");
136 __gaa_helpsingle(0, "dhparams", "FILE ", "DH params file to use.");
137 __gaa_helpsingle(0, "x509fmtder", "", "Use DER format for certificates");
138 __gaa_helpsingle(0, "x509cafile", "FILE ", "Certificate file or PKCS #11 URL to use.");
139 __gaa_helpsingle(0, "x509crlfile", "FILE ", "CRL file to use.");
140 __gaa_helpsingle(0, "pgpkeyring", "FILE ", "PGP Key ring file to use.");
141 __gaa_helpsingle(0, "pgpkeyfile", "FILE ", "PGP Key file to use.");
142 __gaa_helpsingle(0, "pgpcertfile", "FILE ", "PGP Public Key (certificate) file to use.");
143 __gaa_helpsingle(0, "pgpsubkey", "HEX|auto ", "PGP subkey to use.");
144 __gaa_helpsingle(0, "x509keyfile", "FILE ", "X.509 key file or PKCS #11 URL to use.");
145 __gaa_helpsingle(0, "x509certfile", "FILE ", "X.509 Certificate file or PKCS #11 URL to use.");
146 __gaa_helpsingle(0, "x509dsakeyfile", "FILE ", "Alternative X.509 key file to use.");
147 __gaa_helpsingle(0, "x509dsacertfile", "FILE ", "Alternative X.509 certificate file to use.");
148 __gaa_helpsingle('r', "require-cert", "", "Require a valid certificate.");
149 __gaa_helpsingle('a', "disable-client-cert", "", "Disable request for a client certificate.");
150 __gaa_helpsingle(0, "pskpasswd", "FILE ", "PSK password file to use.");
151 __gaa_helpsingle(0, "pskhint", "HINT ", "PSK identity hint to use.");
152 __gaa_helpsingle(0, "srppasswd", "FILE ", "SRP password file to use.");
153 __gaa_helpsingle(0, "srppasswdconf", "FILE ", "SRP password conf file to use.");
154 __gaa_helpsingle(0, "opaque-prf-input", "DATA ", "Use Opaque PRF Input DATA.");
155 __gaa_helpsingle(0, "priority", "PRIORITY STRING ", "Priorities string.");
156 __gaa_helpsingle('l', "list", "", "Print a list of the supported algorithms and modes.");
157 __gaa_helpsingle('h', "help", "", "prints this help");
158 __gaa_helpsingle('v', "version", "", "prints the program's version number");
166 #ifndef GAA_HEADER_POKY
167 #define GAA_HEADER_POKY
169 typedef struct _gaainfo gaainfo;
176 char *opaque_prf_input;
178 char *srp_passwd_conf;
186 int disable_client_cert;
190 char *x509_dsacertfile;
192 char *x509_dsakeyfile;
212 char *dh_params_file;
236 int gaa(int argc, char *argv[], gaainfo *gaaval);
240 int gaa_file(const char *name, gaainfo *gaaval);
253 #define GAAERROR(x) \
259 static char *gaa_current_option;
260 static int gaa_error = 0;
262 /* Generated by gaa */
270 #define GAA_ERROR_NOMATCH 0
271 #define GAA_ERROR_NOTENOUGH_ARGS 1
272 #define GAA_ERROR_INVALID_ARG 2
273 #define GAA_ERROR_UNKNOWN 3
275 #define GAA_NOT_AN_OPTION 0
276 #define GAA_WORD_OPTION 1
277 #define GAA_LETTER_OPTION 2
278 #define GAA_MULTIPLE_OPTION 3
281 #define GAA_NB_OPTION 31
282 #define GAAOPTID_version 1
283 #define GAAOPTID_help 2
284 #define GAAOPTID_list 3
285 #define GAAOPTID_priority 4
286 #define GAAOPTID_opaque_prf_input 5
287 #define GAAOPTID_srppasswdconf 6
288 #define GAAOPTID_srppasswd 7
289 #define GAAOPTID_pskhint 8
290 #define GAAOPTID_pskpasswd 9
291 #define GAAOPTID_disable_client_cert 10
292 #define GAAOPTID_require_cert 11
293 #define GAAOPTID_x509dsacertfile 12
294 #define GAAOPTID_x509dsakeyfile 13
295 #define GAAOPTID_x509certfile 14
296 #define GAAOPTID_x509keyfile 15
297 #define GAAOPTID_pgpsubkey 16
298 #define GAAOPTID_pgpcertfile 17
299 #define GAAOPTID_pgpkeyfile 18
300 #define GAAOPTID_pgpkeyring 19
301 #define GAAOPTID_x509crlfile 20
302 #define GAAOPTID_x509cafile 21
303 #define GAAOPTID_x509fmtder 22
304 #define GAAOPTID_dhparams 23
305 #define GAAOPTID_echo 24
306 #define GAAOPTID_http 25
307 #define GAAOPTID_noticket 26
308 #define GAAOPTID_nodb 27
309 #define GAAOPTID_quiet 28
310 #define GAAOPTID_port 29
311 #define GAAOPTID_generate 30
312 #define GAAOPTID_debug 31
316 #define GAA_CHECK1STR(a,b) \
319 gaa_current_option = a; \
323 #define GAA_CHECKSTR(a,b) \
324 if(strcmp(a,str) == 0) \
326 gaa_current_option = a; \
330 #define GAA_TESTMOREARGS \
333 while((gaa_last_non_option != gaa_index) && (gaa_arg_used[gaa_index] == 1)) \
335 if(gaa_last_non_option == gaa_index) \
336 return GAA_ERROR_NOTENOUGH_ARGS; \
339 #define GAA_TESTMOREOPTIONALARGS \
342 while((gaa_last_non_option != gaa_index) && (gaa_arg_used[gaa_index] == 1)) \
344 if(gaa_last_non_option == gaa_index) \
348 #define GAA_FILL_2ARGS(target, func) \
349 target = func(GAAargv[gaa_index]); \
350 gaa_arg_used[gaa_index] = 1; \
354 return GAA_ERROR_INVALID_ARG; \
359 #define GAA_FILL(target, func, num) \
362 target = func(GAAargv[gaa_index]); \
363 gaa_arg_used[gaa_index] = 1; \
367 return GAA_ERROR_INVALID_ARG; \
376 #define GAA_LIST_FILL(target, func, type ,num) \
381 if ( gaa_last_non_option - gaa_index > 0) \
382 target = gaa_malloc((gaa_last_non_option - gaa_index) * sizeof(type));\
383 for(; gaa_index < gaa_last_non_option; gaa_index++) \
385 if(gaa_arg_used[gaa_index] == 0) \
387 GAA_FILL_2ARGS(target[num], func); \
392 return GAA_ERROR_NOTENOUGH_ARGS; \
395 #define GAA_OPTIONALLIST_FILL(target, func, type ,num) \
400 if ( gaa_last_non_option - gaa_index > 0) \
401 target = gaa_malloc((gaa_last_non_option - gaa_index) * sizeof(type));\
402 for(; gaa_index < gaa_last_non_option; gaa_index++) \
404 if(gaa_arg_used[gaa_index] == 0) \
406 GAA_FILL_2ARGS(target[num], func); \
412 #define GAA_OBLIGAT(str) \
414 for(i = 0; i < strlen(str); i++) \
416 j = gaa_get_option_num(str + i, GAA_LETTER_OPTION); \
417 if(j == GAA_ERROR_NOMATCH) \
419 printf("Error: invalid 'obligat' set\n"); \
422 if(opt_list[j] == 1) \
427 if(strlen(str) == 1) \
428 printf("You must give the -%s option\n", str); \
430 printf("You must give at least one option of '%s'\n", str); \
434 #define GAA_INCOMP(str) \
436 for(i = 0; i < strlen(str); i++) \
438 j = gaa_get_option_num(str + i, GAA_LETTER_OPTION); \
439 if(j == GAA_ERROR_NOMATCH) \
441 printf("Error: invalid 'obligat' set\n"); \
444 if(opt_list[j] == 1) \
449 printf("The options '%s' are incompatible\n", str); \
454 static char **GAAargv;
456 static char *gaa_arg_used;
457 static int gaa_processing_file = 0;
458 static int inited = 0;
460 static int gaa_getint(char *arg)
464 if(sscanf(arg, "%d%c", &tmp, &a) < 1)
466 printf("Option %s: '%s' isn't an integer\n", gaa_current_option, arg);
472 static char gaa_getchar(char *arg)
476 printf("Option %s: '%s' isn't an character\n", gaa_current_option, arg);
482 static char* gaa_getstr(char *arg)
486 static float gaa_getfloat(char *arg)
490 if(sscanf(arg, "%f%c", &tmp, &a) < 1)
492 printf("Option %s: '%s' isn't a float number\n", gaa_current_option, arg);
497 /* option structures */
499 struct GAAOPTION_priority
505 struct GAAOPTION_opaque_prf_input
511 struct GAAOPTION_srppasswdconf
517 struct GAAOPTION_srppasswd
523 struct GAAOPTION_pskhint
529 struct GAAOPTION_pskpasswd
535 struct GAAOPTION_x509dsacertfile
541 struct GAAOPTION_x509dsakeyfile
547 struct GAAOPTION_x509certfile
553 struct GAAOPTION_x509keyfile
559 struct GAAOPTION_pgpsubkey
565 struct GAAOPTION_pgpcertfile
571 struct GAAOPTION_pgpkeyfile
577 struct GAAOPTION_pgpkeyring
583 struct GAAOPTION_x509crlfile
589 struct GAAOPTION_x509cafile
595 struct GAAOPTION_dhparams
601 struct GAAOPTION_port
607 struct GAAOPTION_debug
614 static int gaa_is_an_argument(char *str)
617 if(str[0] == '/' && str[1] != 0)
618 return GAA_MULTIPLE_OPTION;
621 return GAA_NOT_AN_OPTION;
623 return GAA_NOT_AN_OPTION;
627 return GAA_WORD_OPTION;
629 return GAA_NOT_AN_OPTION;
632 return GAA_LETTER_OPTION;
634 return GAA_MULTIPLE_OPTION;
637 static int gaa_get_option_num(char *str, int status)
641 case GAA_LETTER_OPTION:
642 GAA_CHECK1STR("", GAAOPTID_priority);
643 GAA_CHECK1STR("", GAAOPTID_opaque_prf_input);
644 GAA_CHECK1STR("", GAAOPTID_srppasswdconf);
645 GAA_CHECK1STR("", GAAOPTID_srppasswd);
646 GAA_CHECK1STR("", GAAOPTID_pskhint);
647 GAA_CHECK1STR("", GAAOPTID_pskpasswd);
648 GAA_CHECK1STR("", GAAOPTID_x509dsacertfile);
649 GAA_CHECK1STR("", GAAOPTID_x509dsakeyfile);
650 GAA_CHECK1STR("", GAAOPTID_x509certfile);
651 GAA_CHECK1STR("", GAAOPTID_x509keyfile);
652 GAA_CHECK1STR("", GAAOPTID_pgpsubkey);
653 GAA_CHECK1STR("", GAAOPTID_pgpcertfile);
654 GAA_CHECK1STR("", GAAOPTID_pgpkeyfile);
655 GAA_CHECK1STR("", GAAOPTID_pgpkeyring);
656 GAA_CHECK1STR("", GAAOPTID_x509crlfile);
657 GAA_CHECK1STR("", GAAOPTID_x509cafile);
658 GAA_CHECK1STR("", GAAOPTID_dhparams);
659 GAA_CHECK1STR("p", GAAOPTID_port);
660 GAA_CHECK1STR("d", GAAOPTID_debug);
661 case GAA_MULTIPLE_OPTION:
663 GAA_CHECK1STR("v", GAAOPTID_version);
664 GAA_CHECK1STR("h", GAAOPTID_help);
665 GAA_CHECK1STR("l", GAAOPTID_list);
666 GAA_CHECK1STR("a", GAAOPTID_disable_client_cert);
667 GAA_CHECK1STR("r", GAAOPTID_require_cert);
668 GAA_CHECK1STR("", GAAOPTID_x509fmtder);
669 GAA_CHECK1STR("", GAAOPTID_echo);
670 GAA_CHECK1STR("", GAAOPTID_http);
671 GAA_CHECK1STR("", GAAOPTID_noticket);
672 GAA_CHECK1STR("", GAAOPTID_nodb);
673 GAA_CHECK1STR("q", GAAOPTID_quiet);
674 GAA_CHECK1STR("g", GAAOPTID_generate);
678 case GAA_WORD_OPTION:
679 GAA_CHECKSTR("version", GAAOPTID_version);
680 GAA_CHECKSTR("help", GAAOPTID_help);
681 GAA_CHECKSTR("list", GAAOPTID_list);
682 GAA_CHECKSTR("priority", GAAOPTID_priority);
683 GAA_CHECKSTR("opaque-prf-input", GAAOPTID_opaque_prf_input);
684 GAA_CHECKSTR("srppasswdconf", GAAOPTID_srppasswdconf);
685 GAA_CHECKSTR("srppasswd", GAAOPTID_srppasswd);
686 GAA_CHECKSTR("pskhint", GAAOPTID_pskhint);
687 GAA_CHECKSTR("pskpasswd", GAAOPTID_pskpasswd);
688 GAA_CHECKSTR("disable-client-cert", GAAOPTID_disable_client_cert);
689 GAA_CHECKSTR("require-cert", GAAOPTID_require_cert);
690 GAA_CHECKSTR("x509dsacertfile", GAAOPTID_x509dsacertfile);
691 GAA_CHECKSTR("x509dsakeyfile", GAAOPTID_x509dsakeyfile);
692 GAA_CHECKSTR("x509certfile", GAAOPTID_x509certfile);
693 GAA_CHECKSTR("x509keyfile", GAAOPTID_x509keyfile);
694 GAA_CHECKSTR("pgpsubkey", GAAOPTID_pgpsubkey);
695 GAA_CHECKSTR("pgpcertfile", GAAOPTID_pgpcertfile);
696 GAA_CHECKSTR("pgpkeyfile", GAAOPTID_pgpkeyfile);
697 GAA_CHECKSTR("pgpkeyring", GAAOPTID_pgpkeyring);
698 GAA_CHECKSTR("x509crlfile", GAAOPTID_x509crlfile);
699 GAA_CHECKSTR("x509cafile", GAAOPTID_x509cafile);
700 GAA_CHECKSTR("x509fmtder", GAAOPTID_x509fmtder);
701 GAA_CHECKSTR("dhparams", GAAOPTID_dhparams);
702 GAA_CHECKSTR("echo", GAAOPTID_echo);
703 GAA_CHECKSTR("http", GAAOPTID_http);
704 GAA_CHECKSTR("noticket", GAAOPTID_noticket);
705 GAA_CHECKSTR("nodb", GAAOPTID_nodb);
706 GAA_CHECKSTR("quiet", GAAOPTID_quiet);
707 GAA_CHECKSTR("port", GAAOPTID_port);
708 GAA_CHECKSTR("generate", GAAOPTID_generate);
709 GAA_CHECKSTR("debug", GAAOPTID_debug);
715 return GAA_ERROR_NOMATCH;
718 static int gaa_try(int gaa_num, int gaa_index, gaainfo *gaaval, char *opt_list)
721 int gaa_last_non_option;
722 struct GAAOPTION_priority GAATMP_priority;
723 struct GAAOPTION_opaque_prf_input GAATMP_opaque_prf_input;
724 struct GAAOPTION_srppasswdconf GAATMP_srppasswdconf;
725 struct GAAOPTION_srppasswd GAATMP_srppasswd;
726 struct GAAOPTION_pskhint GAATMP_pskhint;
727 struct GAAOPTION_pskpasswd GAATMP_pskpasswd;
728 struct GAAOPTION_x509dsacertfile GAATMP_x509dsacertfile;
729 struct GAAOPTION_x509dsakeyfile GAATMP_x509dsakeyfile;
730 struct GAAOPTION_x509certfile GAATMP_x509certfile;
731 struct GAAOPTION_x509keyfile GAATMP_x509keyfile;
732 struct GAAOPTION_pgpsubkey GAATMP_pgpsubkey;
733 struct GAAOPTION_pgpcertfile GAATMP_pgpcertfile;
734 struct GAAOPTION_pgpkeyfile GAATMP_pgpkeyfile;
735 struct GAAOPTION_pgpkeyring GAATMP_pgpkeyring;
736 struct GAAOPTION_x509crlfile GAATMP_x509crlfile;
737 struct GAAOPTION_x509cafile GAATMP_x509cafile;
738 struct GAAOPTION_dhparams GAATMP_dhparams;
739 struct GAAOPTION_port GAATMP_port;
740 struct GAAOPTION_debug GAATMP_debug;
743 #ifdef GAA_REST_EXISTS
744 struct GAAREST GAAREST_tmp;
747 opt_list[gaa_num] = 1;
749 for(gaa_last_non_option = gaa_index;
750 (gaa_last_non_option != GAAargc) && (gaa_is_an_argument(GAAargv[gaa_last_non_option]) == GAA_NOT_AN_OPTION);
751 gaa_last_non_option++);
753 if(gaa_num == GAA_REST)
756 gaa_last_non_option = GAAargc;
761 case GAAOPTID_version:
764 { serv_version(); exit(0); ;};
771 { gaa_help(); exit(0); ;};
778 { print_list(0); exit(0); ;};
782 case GAAOPTID_priority:
785 GAA_FILL(GAATMP_priority.arg1, gaa_getstr, GAATMP_priority.size1);
788 { gaaval->priorities = GAATMP_priority.arg1 ;};
792 case GAAOPTID_opaque_prf_input:
795 GAA_FILL(GAATMP_opaque_prf_input.arg1, gaa_getstr, GAATMP_opaque_prf_input.size1);
798 { gaaval->opaque_prf_input = GAATMP_opaque_prf_input.arg1 ;};
802 case GAAOPTID_srppasswdconf:
805 GAA_FILL(GAATMP_srppasswdconf.arg1, gaa_getstr, GAATMP_srppasswdconf.size1);
808 { gaaval->srp_passwd_conf = GAATMP_srppasswdconf.arg1 ;};
812 case GAAOPTID_srppasswd:
815 GAA_FILL(GAATMP_srppasswd.arg1, gaa_getstr, GAATMP_srppasswd.size1);
818 { gaaval->srp_passwd = GAATMP_srppasswd.arg1 ;};
822 case GAAOPTID_pskhint:
825 GAA_FILL(GAATMP_pskhint.arg1, gaa_getstr, GAATMP_pskhint.size1);
828 { gaaval->psk_hint = GAATMP_pskhint.arg1 ;};
832 case GAAOPTID_pskpasswd:
835 GAA_FILL(GAATMP_pskpasswd.arg1, gaa_getstr, GAATMP_pskpasswd.size1);
838 { gaaval->psk_passwd = GAATMP_pskpasswd.arg1 ;};
842 case GAAOPTID_disable_client_cert:
845 { gaaval->disable_client_cert = 1 ;};
849 case GAAOPTID_require_cert:
852 { gaaval->require_cert = 1 ;};
856 case GAAOPTID_x509dsacertfile:
859 GAA_FILL(GAATMP_x509dsacertfile.arg1, gaa_getstr, GAATMP_x509dsacertfile.size1);
862 { gaaval->x509_dsacertfile = GAATMP_x509dsacertfile.arg1 ;};
866 case GAAOPTID_x509dsakeyfile:
869 GAA_FILL(GAATMP_x509dsakeyfile.arg1, gaa_getstr, GAATMP_x509dsakeyfile.size1);
872 { gaaval->x509_dsakeyfile = GAATMP_x509dsakeyfile.arg1 ;};
876 case GAAOPTID_x509certfile:
879 GAA_FILL(GAATMP_x509certfile.arg1, gaa_getstr, GAATMP_x509certfile.size1);
882 { gaaval->x509_certfile = GAATMP_x509certfile.arg1 ;};
886 case GAAOPTID_x509keyfile:
889 GAA_FILL(GAATMP_x509keyfile.arg1, gaa_getstr, GAATMP_x509keyfile.size1);
892 { gaaval->x509_keyfile = GAATMP_x509keyfile.arg1 ;};
896 case GAAOPTID_pgpsubkey:
899 GAA_FILL(GAATMP_pgpsubkey.arg1, gaa_getstr, GAATMP_pgpsubkey.size1);
902 { gaaval->pgp_subkey = GAATMP_pgpsubkey.arg1 ;};
906 case GAAOPTID_pgpcertfile:
909 GAA_FILL(GAATMP_pgpcertfile.arg1, gaa_getstr, GAATMP_pgpcertfile.size1);
912 { gaaval->pgp_certfile = GAATMP_pgpcertfile.arg1 ;};
916 case GAAOPTID_pgpkeyfile:
919 GAA_FILL(GAATMP_pgpkeyfile.arg1, gaa_getstr, GAATMP_pgpkeyfile.size1);
922 { gaaval->pgp_keyfile = GAATMP_pgpkeyfile.arg1 ;};
926 case GAAOPTID_pgpkeyring:
929 GAA_FILL(GAATMP_pgpkeyring.arg1, gaa_getstr, GAATMP_pgpkeyring.size1);
932 { gaaval->pgp_keyring = GAATMP_pgpkeyring.arg1 ;};
936 case GAAOPTID_x509crlfile:
939 GAA_FILL(GAATMP_x509crlfile.arg1, gaa_getstr, GAATMP_x509crlfile.size1);
942 { gaaval->x509_crlfile = GAATMP_x509crlfile.arg1 ;};
946 case GAAOPTID_x509cafile:
949 GAA_FILL(GAATMP_x509cafile.arg1, gaa_getstr, GAATMP_x509cafile.size1);
952 { gaaval->x509_cafile = GAATMP_x509cafile.arg1 ;};
956 case GAAOPTID_x509fmtder:
959 { gaaval->fmtder = 1 ;};
963 case GAAOPTID_dhparams:
966 GAA_FILL(GAATMP_dhparams.arg1, gaa_getstr, GAATMP_dhparams.size1);
969 { gaaval->dh_params_file = GAATMP_dhparams.arg1 ;};
976 { gaaval->http = 0 ;};
983 { gaaval->http = 1 ;};
987 case GAAOPTID_noticket:
990 { gaaval->noticket = 1 ;};
997 { gaaval->nodb = 1 ;};
1001 case GAAOPTID_quiet:
1004 { gaaval->quiet = 1 ;};
1011 GAA_FILL(GAATMP_port.arg1, gaa_getint, GAATMP_port.size1);
1014 { gaaval->port = GAATMP_port.arg1 ;};
1018 case GAAOPTID_generate:
1021 { gaaval->generate = 1 ;};
1025 case GAAOPTID_debug:
1028 GAA_FILL(GAATMP_debug.arg1, gaa_getint, GAATMP_debug.size1);
1031 { gaaval->debug = GAATMP_debug.arg1 ;};
1036 #line 413 "gaa.skel"
1039 return GAA_ERROR_UNKNOWN;
1042 int gaa(int argc, char **argv, gaainfo *gaaval)
1051 opt_list = (char*) gaa_malloc(GAA_NB_OPTION + 1);
1053 for(i = 0; i < GAA_NB_OPTION + 1; i++)
1055 /* initialization */
1059 #line 101 "serv.gaa"
1060 { gaaval->generate=0; gaaval->port=5556; gaaval->http=0; gaaval->nodb = 0; gaaval->noticket = 0;
1061 gaaval->x509_cafile = NULL; gaaval->pgp_keyfile=NULL; gaaval->pgp_certfile=NULL;
1062 gaaval->x509_keyfile=NULL; gaaval->x509_certfile=NULL; gaaval->x509_crlfile = NULL;
1063 gaaval->x509_dsakeyfile=NULL; gaaval->x509_dsacertfile=NULL;
1064 gaaval->srp_passwd=NULL; gaaval->srp_passwd_conf=NULL; gaaval->quiet = 0;
1065 gaaval->pgp_keyring=NULL; gaaval->fmtder = 0;
1066 gaaval->disable_client_cert = 0; gaaval->priorities = NULL;
1067 gaaval->dh_params_file=NULL; gaaval->debug=0; gaaval->require_cert = 0; gaaval->psk_passwd = 0;
1068 gaaval->opaque_prf_input=NULL; gaaval->pgp_subkey = NULL;;};
1072 #line 438 "gaa.skel"
1073 gaa_arg_used = NULL;
1076 gaa_arg_used = gaa_malloc(argc * sizeof(char));
1079 for(i = 1; i < argc; i++)
1080 gaa_arg_used[i] = 0;
1081 for(i = 1; i < argc; i++)
1083 if(gaa_arg_used[i] == 0)
1086 tmp1 = gaa_is_an_argument(GAAargv[i]);
1089 case GAA_WORD_OPTION:
1091 case GAA_LETTER_OPTION:
1093 tmp2 = gaa_get_option_num(argv[i]+j, tmp1);
1094 if(tmp2 == GAA_ERROR_NOMATCH)
1096 printf("Invalid option '%s'\n", argv[i]+j);
1099 switch(gaa_try(tmp2, i+1, gaaval, opt_list))
1101 case GAA_ERROR_NOTENOUGH_ARGS:
1102 printf("'%s': not enough arguments\n",gaa_current_option);
1104 case GAA_ERROR_INVALID_ARG:
1105 printf("Invalid arguments\n");
1110 printf("Unknown error\n");
1112 gaa_arg_used[i] = 1;
1114 case GAA_MULTIPLE_OPTION:
1115 for(j = 1; j < strlen(argv[i]); j++)
1117 tmp2 = gaa_get_option_num(argv[i]+j, tmp1);
1118 if(tmp2 == GAA_ERROR_NOMATCH)
1120 printf("Invalid option '%c'\n", *(argv[i]+j));
1123 switch(gaa_try(tmp2, i+1, gaaval, opt_list))
1125 case GAA_ERROR_NOTENOUGH_ARGS:
1126 printf("'%s': not enough arguments\n",gaa_current_option);
1128 case GAA_ERROR_INVALID_ARG:
1129 printf("Invalid arguments\n");
1134 printf("Unknown error\n");
1137 gaa_arg_used[i] = 1;
1143 if(gaa_processing_file == 0)
1147 #line 507 "gaa.skel"
1148 #ifdef GAA_REST_EXISTS
1149 switch(gaa_try(GAA_REST, 1, gaaval, opt_list))
1151 case GAA_ERROR_NOTENOUGH_ARGS:
1152 printf("Rest: not enough arguments\n");
1154 case GAA_ERROR_INVALID_ARG:
1155 printf("Invalid arguments\n");
1160 printf("Unknown error\n");
1164 for(i = 1; i < argc; i++)
1166 if(gaa_arg_used[i] == 0)
1168 printf("Too many arguments\n");
1180 struct gaastrnode *next;
1183 typedef struct gaastrnode gaa_str_node;
1185 static int gaa_internal_get_next_str(FILE *file, gaa_str_node *tmp_str, int argc)
1189 int i = 0, len = 0, newline = 0;
1197 if (a == EOF) return 0;
1199 while(a == ' ' || a == 9 || a == '\n')
1207 if (a == EOF) return 0;
1210 pos_ini = ftell(file) - 1;
1212 while(a != ' ' && a != 9 && a != '\n')
1217 if(a==EOF) return 0;
1221 tmp_str->str = gaa_malloc((len) * sizeof(char));
1225 tmp_str->str[0] = '-';
1226 tmp_str->str[1] = '-';
1234 fseek(file,pos_ini, SEEK_SET);
1243 tmp_str->str[i] = a;
1246 while(a != ' ' && a != 9 && a != '\n' && i < len);
1248 tmp_str->str[i - 1] = 0;
1250 fseek(file,- 1, SEEK_CUR);
1251 /* printf("%d\n", ftell(file)); */
1256 int gaa_file(const char *name, gaainfo *gaaval)
1258 gaa_str_node *first_str, **tmp_str, *tmp_str2;
1264 gaa_processing_file = 1;
1266 if((file = fopen(name, "r")) == NULL)
1268 printf("Couldn't open '%s' configuration file for reading\n", name);
1272 tmp_str = &first_str;
1276 *tmp_str = gaa_malloc(sizeof(gaa_str_node));
1278 (*tmp_str)->str = NULL;
1279 (*tmp_str)->next = NULL;
1281 rval = gaa_internal_get_next_str(file, *tmp_str, argc);
1282 tmp_str = &((*tmp_str)->next);
1289 argv = gaa_malloc((1 + argc) * sizeof(char*));
1291 tmp_str2 = first_str;
1293 for(i = 1; i < argc; i++)
1295 argv[i] = tmp_str2->str;
1296 tmp_str2 = tmp_str2->next;
1299 rval = gaa(argc, argv, gaaval);
1300 gaa_processing_file = 0;