diff options
author | Adam Hamsik <haaaad@gmail.com> | 2012-01-26 18:17:28 +0400 |
---|---|---|
committer | Adam Hamsik <haaaad@gmail.com> | 2012-01-26 18:17:28 +0400 |
commit | fe8672eab6a3fd1a20066f1cf4b4d32f79b25188 (patch) | |
tree | 197ef22752f25945c85ad5df0d66ea5f2d4672c4 /src/main.c | |
parent | d9341a8c746efbb3ce25f5e7f255a4919df16f0a (diff) | |
parent | af5163bccf0969ecaa653269e06dc2fb31a48e2d (diff) |
Merge branch 'master' of github.com:haad/proxychains
Diffstat (limited to 'src/main.c')
-rw-r--r-- | src/main.c | 33 |
1 files changed, 15 insertions, 18 deletions
@@ -29,9 +29,6 @@ #include <errno.h> #include <sys/wait.h> -extern char *optarg; -extern int optind, opterr, optopt; - #include "common.h" static int usage(char** argv) { @@ -78,31 +75,33 @@ int main(int argc, char *argv[]) { char *path = NULL; char buf[256]; char pbuf[256]; - int opt; int start_argv = 1; int quiet = 0; + size_t i; + const char* prefix = NULL; - if(argc == 1) return usage(argv); - - while ((opt = getopt(argc, argv, "qf:")) != -1) { - switch (opt) { - case 'q': + for(i = 0; i < 2; i++) { + if(start_argv < argc && argv[start_argv][0] == '-') { + if(argv[start_argv][1] == 'q') { quiet = 1; start_argv++; - break; - case 'f': - path = (char *)optarg; + } else if(argv[start_argv][1] == 'f') { + + if(start_argv + 1 < argc) + path = argv[start_argv + 1]; + else + return usage(argv); + if(!path) { fprintf(stderr, "error: no path supplied.\n"); return EXIT_FAILURE; } start_argv += 2; - break; - default: /* '?' */ - return usage(argv); } + } else + break; } - + if(start_argv >= argc) return usage(argv); /* check if path of config file has not been passed via command line */ @@ -141,8 +140,6 @@ int main(int argc, char *argv[]) { // search DLL - size_t i = 0; - const char* prefix = NULL; set_own_dir(argv[0]); |