masqmail
changeset 248:018cfd163f5c
refactored processing of -oXXX options
plus two minor things
author | markus schnalke <meillo@marmaro.de> |
---|---|
date | Mon, 01 Nov 2010 14:53:26 -0300 |
parents | 3c40f86d50e4 |
children | f9da5a7caeda |
files | src/masqmail.c |
diffstat | 1 files changed, 21 insertions(+), 24 deletions(-) [+] |
line diff
1.1 --- a/src/masqmail.c Mon Nov 01 13:30:02 2010 -0300 1.2 +++ b/src/masqmail.c Mon Nov 01 14:53:26 2010 -0300 1.3 @@ -304,8 +304,6 @@ 1.4 gint queue_interval = 0; 1.5 gboolean opt_t = FALSE; 1.6 gboolean opt_i = FALSE; 1.7 - gboolean opt_odb = FALSE; 1.8 - gboolean opt_oem = FALSE; 1.9 gboolean exit_failure = FALSE; 1.10 1.11 gchar *M_cmd = NULL; 1.12 @@ -432,26 +430,24 @@ 1.13 /* ignore -m (me too) switch (see man page) */ 1.14 break; 1.15 case 'o': 1.16 - switch (argv[arg][pos++]) { 1.17 - case 'e': 1.18 - if (argv[arg][pos++] == 'm') /* -oem */ 1.19 - if (!opt_i) 1.20 - exit_failure = TRUE; 1.21 - opt_oem = TRUE; 1.22 - break; 1.23 - case 'd': 1.24 - if (argv[arg][pos] == 'b') /* -odb */ 1.25 - opt_odb = TRUE; 1.26 - else if (argv[arg][pos] == 'q') /* -odq */ 1.27 - do_queue = TRUE; 1.28 - break; 1.29 - case 'i': 1.30 - opt_i = TRUE; 1.31 + char* oarg = argv[arg][pos+1]; 1.32 + if (strcmp(oarg, "oem") == 0) { 1.33 + if (!opt_i) { 1.34 + /* FIXME: this check needs to be done after 1.35 + option processing as -oi may come later */ 1.36 + exit_failure = TRUE; 1.37 + } 1.38 + } else if (strcmp(oarg, "odb") == 0) { 1.39 + /* ignore ``deliver in background'' switch */ 1.40 + } else if (strcmp(oarg, "odq") == 0) { 1.41 + do_queue = TRUE; 1.42 + } else if (strcmp(oarg, "oi") == 0) { 1.43 exit_failure = FALSE; /* may override -oem */ 1.44 - break; 1.45 - case 'm': 1.46 - /* ignore -m (me too) switch (see man page) */ 1.47 - break; 1.48 + } else if (strcmp(oarg, "om") == 0) { 1.49 + /* ignore ``me too'' switch */ 1.50 + } else { 1.51 + fprintf(stderr, "ignoring unrecognized option %s\n", 1.52 + argv[arg]); 1.53 } 1.54 break; 1.55 1.56 @@ -475,7 +471,7 @@ 1.57 } 1.58 break; 1.59 case 't': 1.60 - if (argv[arg][pos] == 0) { 1.61 + if (argv[arg][pos] == '\0') { 1.62 opt_t = TRUE; 1.63 } else { 1.64 fprintf(stderr, "unrecognized option '%s'\n", argv[arg]); 1.65 @@ -670,10 +666,11 @@ 1.66 message *msg = msg_spool_read(argv[arg], FALSE); 1.67 #ifdef ENABLE_IDENT 1.68 if (((msg->received_host == NULL) && (msg->received_prot == PROT_LOCAL)) 1.69 - || is_in_netlist(msg->received_host, conf.ident_trusted_nets)) { 1.70 + || is_in_netlist(msg->received_host, conf.ident_trusted_nets)) 1.71 #else 1.72 - if ((msg->received_host == NULL) && (msg->received_prot == PROT_LOCAL)) { 1.73 + if ((msg->received_host == NULL) && (msg->received_prot == PROT_LOCAL)) 1.74 #endif 1.75 + { 1.76 if (msg->ident) { 1.77 if (strcmp(pw->pw_name, msg->ident) == 0) { 1.78 if (queue_delete(argv[arg]))