int gaa_file(const char *name, gaainfo *gaaval) { gaa_str_node *first_str, **tmp_str, *tmp_str2; int rval, i; char **argv; int argc = 0; FILE *file; gaa_processing_file = 1; if((file = fopen(name, "r")) == NULL) { printf("Couldn't open '%s' configuration file for reading\n", name); return 1; } tmp_str = &first_str; do { argc++; *tmp_str = gaa_malloc(sizeof(gaa_str_node)); (*tmp_str)->str = NULL; (*tmp_str)->next = NULL; rval = gaa_internal_get_next_str(file, *tmp_str, argc); tmp_str = &((*tmp_str)->next); } while(rval == -1); if(rval == 1) return 0; argv = gaa_malloc((1 + argc) * sizeof(char*)); tmp_str2 = first_str; argv[0] = "cfg"; for(i = 1; i < argc; i++) { argv[i] = tmp_str2->str; tmp_str2 = tmp_str2->next; } rval = gaa(argc, argv, gaaval); gaa_processing_file = 0; return rval; }
static int gaa_internal_get_next_str(FILE *file, gaa_str_node *tmp_str, int argc) { int pos_ini; int a; int i = 0, len = 0, newline = 0; if(argc == 1) { newline = 1; len = 2; } a = fgetc( file); if (a == EOF) return 0; while(a == ' ' || a == 9 || a == '\n') { if(a == '\n') { newline=1; len = 2; } a = fgetc( file); if (a == EOF) return 0; } pos_ini = ftell(file) - 1; while(a != ' ' && a != 9 && a != '\n') { len++; a = fgetc( file); if(a==EOF) return 0; } len += 1; tmp_str->str = gaa_malloc((len) * sizeof(char)); if(newline == 1) { tmp_str->str[0] = '-'; tmp_str->str[1] = '-'; i = 2; } else { i = 0; } fseek(file,pos_ini, SEEK_SET); do { a = fgetc( file); if (a == EOF) { i+=2; break; } tmp_str->str[i] = a; i++; } while(a != ' ' && a != 9 && a != '\n' && i < len); tmp_str->str[i - 1] = 0; fseek(file,- 1, SEEK_CUR); /* printf("%d\n", ftell(file)); */ return -1; }
int gaa(int argc, char **argv, gaainfo *gaaval) { int tmp1, tmp2; int i, j; char *opt_list; GAAargv = argv; GAAargc = argc; opt_list = (char*) gaa_malloc(GAA_NB_OPTION + 1); for(i = 0; i < GAA_NB_OPTION + 1; i++) opt_list[i] = 0; /* initialization */ if(inited == 0) { #line 28 "psk.gaa" { gaaval->username=NULL; gaaval->passwd=NULL; gaaval->key_size = NULL; ;}; } inited = 1; #line 438 "gaa.skel" gaa_arg_used = NULL; if (argc > 0) { gaa_arg_used = gaa_malloc(argc * sizeof(char)); } for(i = 1; i < argc; i++) gaa_arg_used[i] = 0; for(i = 1; i < argc; i++) { if(gaa_arg_used[i] == 0) { j = 0; tmp1 = gaa_is_an_argument(GAAargv[i]); switch(tmp1) { case GAA_WORD_OPTION: j++; case GAA_LETTER_OPTION: j++; tmp2 = gaa_get_option_num(argv[i]+j, tmp1); if(tmp2 == GAA_ERROR_NOMATCH) { printf("Invalid option '%s'\n", argv[i]+j); return 0; } switch(gaa_try(tmp2, i+1, gaaval, opt_list)) { case GAA_ERROR_NOTENOUGH_ARGS: printf("'%s': not enough arguments\n",gaa_current_option); return 0; case GAA_ERROR_INVALID_ARG: printf("Invalid arguments\n"); return 0; case GAA_OK: break; default: printf("Unknown error\n"); } gaa_arg_used[i] = 1; break; case GAA_MULTIPLE_OPTION: for(j = 1; j < strlen(argv[i]); j++) { tmp2 = gaa_get_option_num(argv[i]+j, tmp1); if(tmp2 == GAA_ERROR_NOMATCH) { printf("Invalid option '%c'\n", *(argv[i]+j)); return 0; } switch(gaa_try(tmp2, i+1, gaaval, opt_list)) { case GAA_ERROR_NOTENOUGH_ARGS: printf("'%s': not enough arguments\n",gaa_current_option); return 0; case GAA_ERROR_INVALID_ARG: printf("Invalid arguments\n"); return 0; case GAA_OK: break; default: printf("Unknown error\n"); } } gaa_arg_used[i] = 1; break; default: break; } } } if(gaa_processing_file == 0) { #line 507 "gaa.skel" #ifdef GAA_REST_EXISTS switch(gaa_try(GAA_REST, 1, gaaval, opt_list)) { case GAA_ERROR_NOTENOUGH_ARGS: printf("Rest: not enough arguments\n"); return 0; case GAA_ERROR_INVALID_ARG: printf("Invalid arguments\n"); return 0; case GAA_OK: break; default: printf("Unknown error\n"); } #endif } for(i = 1; i < argc; i++) { if(gaa_arg_used[i] == 0) { printf("Too many arguments\n"); return 0; } } free(gaa_arg_used); free(opt_list); return -1; }
int gaa(int argc, char **argv, gaainfo *gaaval) { int tmp1, tmp2; int i, j; char *opt_list; GAAargv = argv; GAAargc = argc; opt_list = (char*) gaa_malloc(GAA_NB_OPTION + 1); for(i = 0; i < GAA_NB_OPTION + 1; i++) opt_list[i] = 0; /* initialization */ if(inited == 0) { #line 114 "cli.gaa" { gaaval->resume=0; gaaval->noticket=0; gaaval->port="443"; gaaval->rest_args=NULL; gaaval->record_size=0; gaaval->fingerprint=0; gaaval->pgp_keyring=NULL; gaaval->x509_crlfile = NULL; gaaval->x509_cafile = NULL; gaaval->pgp_keyfile=NULL; gaaval->pgp_certfile=NULL; gaaval->disable_extensions = 0; gaaval->x509_keyfile=NULL; gaaval->x509_certfile=NULL; gaaval->crlf = 0; gaaval->srp_username=NULL; gaaval->srp_passwd=NULL; gaaval->fmtder = 0; gaaval->starttls =0; gaaval->debug = 0; gaaval->print_cert = 0; gaaval->verbose = 0; gaaval->psk_key = NULL; gaaval->psk_username = NULL; gaaval->priorities = NULL; gaaval->mtu = 1300; gaaval->pgp_subkey = NULL; gaaval->rehandshake = 0; gaaval->udp = 0; ;}; } inited = 1; #line 438 "gaa.skel" gaa_arg_used = NULL; if (argc > 0) { gaa_arg_used = gaa_malloc(argc * sizeof(char)); } for(i = 1; i < argc; i++) gaa_arg_used[i] = 0; for(i = 1; i < argc; i++) { if(gaa_arg_used[i] == 0) { j = 0; tmp1 = gaa_is_an_argument(GAAargv[i]); switch(tmp1) { case GAA_WORD_OPTION: j++; case GAA_LETTER_OPTION: j++; tmp2 = gaa_get_option_num(argv[i]+j, tmp1); if(tmp2 == GAA_ERROR_NOMATCH) { printf("Invalid option '%s'\n", argv[i]+j); return 0; } switch(gaa_try(tmp2, i+1, gaaval, opt_list)) { case GAA_ERROR_NOTENOUGH_ARGS: printf("'%s': not enough arguments\n",gaa_current_option); return 0; case GAA_ERROR_INVALID_ARG: printf("Invalid arguments\n"); return 0; case GAA_OK: break; default: printf("Unknown error\n"); } gaa_arg_used[i] = 1; break; case GAA_MULTIPLE_OPTION: for(j = 1; j < strlen(argv[i]); j++) { tmp2 = gaa_get_option_num(argv[i]+j, tmp1); if(tmp2 == GAA_ERROR_NOMATCH) { printf("Invalid option '%c'\n", *(argv[i]+j)); return 0; } switch(gaa_try(tmp2, i+1, gaaval, opt_list)) { case GAA_ERROR_NOTENOUGH_ARGS: printf("'%s': not enough arguments\n",gaa_current_option); return 0; case GAA_ERROR_INVALID_ARG: printf("Invalid arguments\n"); return 0; case GAA_OK: break; default: printf("Unknown error\n"); } } gaa_arg_used[i] = 1; break; default: break; } } } if(gaa_processing_file == 0) { #line 507 "gaa.skel" #ifdef GAA_REST_EXISTS switch(gaa_try(GAA_REST, 1, gaaval, opt_list)) { case GAA_ERROR_NOTENOUGH_ARGS: printf("Rest: not enough arguments\n"); return 0; case GAA_ERROR_INVALID_ARG: printf("Invalid arguments\n"); return 0; case GAA_OK: break; default: printf("Unknown error\n"); } #endif } for(i = 1; i < argc; i++) { if(gaa_arg_used[i] == 0) { printf("Too many arguments\n"); return 0; } } free(gaa_arg_used); free(opt_list); return -1; }
int gaa(int argc, char **argv, gaainfo *gaaval) { int tmp1, tmp2; int i, j, k; char *opt_list; GAAargv = argv; GAAargc = argc; opt_list = (char*) gaa_malloc(GAA_NB_OPTION + 1); for(i = 0; i < GAA_NB_OPTION + 1; i++) opt_list[i] = 0; /* initialization */ if(inited == 0) { #line 125 "serv.gaa" { gaaval->generate=0; gaaval->port=5556; gaaval->http=0; gaaval->ciphers=NULL; gaaval->kx=NULL; gaaval->comp=NULL; gaaval->macs=NULL; gaaval->ctype=NULL; gaaval->nciphers=0; gaaval->nkx=0; gaaval->ncomp=0; gaaval->nmacs=0; gaaval->nctype = 0; gaaval->nodb = 0; gaaval->noticket = 0; gaaval->x509_cafile = NULL; gaaval->pgp_keyfile=NULL; gaaval->pgp_certfile=NULL; gaaval->x509_keyfile=NULL; gaaval->x509_certfile=NULL; gaaval->x509_crlfile = NULL; gaaval->x509_dsakeyfile=NULL; gaaval->x509_dsacertfile=NULL; gaaval->srp_passwd=NULL; gaaval->srp_passwd_conf=NULL; gaaval->quiet = 0; gaaval->pgp_keyring=NULL; gaaval->fmtder = 0; gaaval->disable_client_cert = 0; gaaval->priorities = NULL; gaaval->dh_params_file=NULL; gaaval->debug=0; gaaval->require_cert = 0; gaaval->psk_passwd = 0; gaaval->opaque_prf_input=NULL; gaaval->pgp_subkey = NULL;;}; } inited = 1; #line 438 "gaa.skel" gaa_arg_used = NULL; if (argc > 0) { gaa_arg_used = gaa_malloc(argc * sizeof(char)); } for(i = 1; i < argc; i++) gaa_arg_used[i] = 0; for(i = 1; i < argc; i++) { if(gaa_arg_used[i] == 0) { j = 0; tmp1 = gaa_is_an_argument(GAAargv[i]); switch(tmp1) { case GAA_WORD_OPTION: j++; case GAA_LETTER_OPTION: j++; tmp2 = gaa_get_option_num(argv[i]+j, tmp1); if(tmp2 == GAA_ERROR_NOMATCH) { printf("Invalid option '%s'\n", argv[i]+j); return 0; } switch(gaa_try(tmp2, i+1, gaaval, opt_list)) { case GAA_ERROR_NOTENOUGH_ARGS: printf("'%s': not enough arguments\n",gaa_current_option); return 0; case GAA_ERROR_INVALID_ARG: printf("Invalid arguments\n"); return 0; case GAA_OK: break; default: printf("Unknown error\n"); } gaa_arg_used[i] = 1; break; case GAA_MULTIPLE_OPTION: for(j = 1; j < strlen(argv[i]); j++) { tmp2 = gaa_get_option_num(argv[i]+j, tmp1); if(tmp2 == GAA_ERROR_NOMATCH) { printf("Invalid option '%c'\n", *(argv[i]+j)); return 0; } switch(gaa_try(tmp2, i+1, gaaval, opt_list)) { case GAA_ERROR_NOTENOUGH_ARGS: printf("'%s': not enough arguments\n",gaa_current_option); return 0; case GAA_ERROR_INVALID_ARG: printf("Invalid arguments\n"); return 0; case GAA_OK: break; default: printf("Unknown error\n"); } } gaa_arg_used[i] = 1; break; default: break; } } } if(gaa_processing_file == 0) { GAA_INCOMP("ra"); #line 507 "gaa.skel" #ifdef GAA_REST_EXISTS switch(gaa_try(GAA_REST, 1, gaaval, opt_list)) { case GAA_ERROR_NOTENOUGH_ARGS: printf("Rest: not enough arguments\n"); return 0; case GAA_ERROR_INVALID_ARG: printf("Invalid arguments\n"); return 0; case GAA_OK: break; default: printf("Unknown error\n"); } #endif } for(i = 1; i < argc; i++) { if(gaa_arg_used[i] == 0) { printf("Too many arguments\n"); return 0; } } free(gaa_arg_used); free(opt_list); return -1; }