/* If a single value is provided, min and max are both set to the value */ static void parse_expires(const char *s, struct ipt_conntrack_info *sinfo) { char *buffer; char *cp; buffer = strdup(s); if ((cp = strchr(buffer, ':')) == NULL) sinfo->expires_min = sinfo->expires_max = parse_expire(buffer); else { *cp = '\0'; cp++; sinfo->expires_min = buffer[0] ? parse_expire(buffer) : 0; sinfo->expires_max = cp[0] ? parse_expire(cp) : -1; } free(buffer); if (sinfo->expires_min > sinfo->expires_max) exit_error(PARAMETER_PROBLEM, #ifdef KERNEL_64_USERSPACE_32 "expire min. range value `%llu' greater than max. " "range value `%llu'", sinfo->expires_min, sinfo->expires_max); #else "expire min. range value `%lu' greater than max. " "range value `%lu'", sinfo->expires_min, sinfo->expires_max); #endif }
/* If a single value is provided, min and max are both set to the value */ static void parse_expires(const char *s, struct xt_conntrack_info *sinfo) { char *buffer; char *cp; buffer = strdup(s); if ((cp = strchr(buffer, ':')) == NULL) sinfo->expires_min = sinfo->expires_max = parse_expire(buffer); else { *cp = '\0'; cp++; sinfo->expires_min = buffer[0] ? parse_expire(buffer) : 0; sinfo->expires_max = cp[0] ? parse_expire(cp) : (unsigned long)-1; } free(buffer); if (sinfo->expires_min > sinfo->expires_max) xtables_error(PARAMETER_PROBLEM, "expire min. range value `%lu' greater than max. " "range value `%lu'", sinfo->expires_min, sinfo->expires_max); }