@@ -141,7 +141,6 @@ exclude_ipset() {
141141 cat " ${TMP_LIST_FILE} " > " ${LIST_FILE} "
142142 done
143143 done
144- rm -f " ${TMP_LIST_FILE} "
145144}
146145
147146diff_ratio () {
@@ -173,15 +172,17 @@ diff_ratio() {
173172
174173optimize_ipset () {
175174 local LIST_FILE=" ${1} "
176- local LIST_FILE_OPTIMIZED=" ${2} "
177175
178- if which iprange > /dev/null 2>&1 ; then
176+ TMP_LIST_FILE=" ${LIST_FILE} .tmp"
177+ if type iprange > /dev/null 2>&1 ; then
179178 [[ " ${IS_VERBOSE} " -eq 1 ]] && echo " - optimize: iprange"
180- iprange --optimize " ${LIST_FILE} " > " ${LIST_FILE_OPTIMIZED } "
179+ iprange --optimize " ${LIST_FILE} " > " ${TMP_LIST_FILE } "
181180 else
182181 [[ " ${IS_VERBOSE} " -eq 1 ]] && echo " - optimize: sort, uniq (NOTICE: iprange is better. https://github.com/firehol/iprange)"
183- cat " ${LIST_FILE} " | sort | uniq > " ${LIST_FILE_OPTIMIZED } "
182+ cat " ${LIST_FILE} " | sort | uniq > " ${TMP_LIST_FILE } "
184183 fi
184+
185+ cat " ${TMP_LIST_FILE} " > " ${LIST_FILE} "
185186}
186187
187188update_ipset () {
@@ -296,6 +297,10 @@ main() {
296297 exclude_ipset " ${LIST_FILE} " " ${EXCLIDE_FILE_LIST[@]} "
297298 fi
298299
300+ # Optimize IP set
301+ [[ " ${IS_VERBOSE} " -eq 1 ]] && echo " # optimize_ipset ${LIST_FILE} "
302+ optimize_ipset " ${LIST_FILE} "
303+
299304 # Calculate diff ratio
300305 local LIST_CURRENT_FILE=" ${STATE_DIR} /${SET_NAME} .current"
301306 if [[ ! -f " ${LIST_CURRENT_FILE} " ]]; then
@@ -316,17 +321,10 @@ main() {
316321
317322 # Update IP set
318323 if [[ " ${IS_FORCE} " -eq 1 || " ${DIFF_RATIO} " != " 0" ]]; then
319- # Optimize IP set
320- local LIST_FILE_OPTIMIZED=" ${LIST_FILE} .optimized"
321- [[ " ${IS_VERBOSE} " -eq 1 ]] && echo " # optimize_ipset ${LIST_FILE} "
322- optimize_ipset " ${LIST_FILE} " " ${LIST_FILE_OPTIMIZED} "
323-
324324 [[ " ${IS_VERBOSE} " -eq 1 ]] && echo " # update_ipset ${SET_NAME} ${LIST_FILE} "
325- update_ipset " ${SET_NAME} " " ${LIST_FILE_OPTIMIZED } "
325+ update_ipset " ${SET_NAME} " " ${LIST_FILE } "
326326 [[ " ${IS_VERBOSE} " -eq 1 ]] && echo " # Updated: ${SET_NAME} "
327327
328- rm -f " ${LIST_FILE_OPTIMIZED} "
329-
330328 # Save ipset configuration
331329 if [[ " ${IS_TEMPORARY} " -eq 0 ]]; then
332330 echo " # Save ipset configuration by using /usr/libexec/ipset/ipset.start-stop save"
0 commit comments