diff options
Diffstat (limited to 'lib/_ak_network_incoming')
| -rwxr-xr-x | lib/_ak_network_incoming | 92 | 
1 files changed, 48 insertions, 44 deletions
diff --git a/lib/_ak_network_incoming b/lib/_ak_network_incoming index 12384a3..cf8920d 100755 --- a/lib/_ak_network_incoming +++ b/lib/_ak_network_incoming @@ -41,54 +41,58 @@ function _ak_network_incoming_show_peers(){  function _ak_network_incoming_scan(){      if [ -f "${AK_ZPEERSINCOMING}" ]      then -    if [ $(cat ${AK_ZPEERSINCOMING}|wc -l) -gt 0 ] -    then -        counter=0 -        count=0 -        _ak_fm_sort_uniq_file ${AK_ZPEERSINCOMING} -        max="$(cat ${AK_ZPEERSINCOMING}|wc -l)" -        printf '[' > walk.aknet -        cat ${AK_ZPEERSINCOMING} \ -            | sort \ -            | uniq \ -            | while read -r uip || [ -n "$uip" ] -        do -            ip="$(_ak_network_utils_pad_ip $uip)" -            count="$(( $count + 1 ))" -            _ak_log_debug "Scanning [${count}/${max}] $ip..." -            node_fs_path="$AK_ZPEERSDIR/inc/$(echo -n $ip| sed 's/://g')" -            scan_ts="$(_ak_datetime_unix)" -            if [ ! -d ${node_fs_path} ] -            then -                mkdir -p ${node_fs_path} -            fi -            node_fs_pathname="${node_fs_path}/${scan_ts}" -            curl \ -                --connect-timeout 3 \ -                -A 'akd/0.1.0; https://github.com/arching-kaos' \ -                "http://[$ip]:8610/v0/node_info" 2>/dev/null | jq -c -M > ${node_fs_pathname} -            node_info="$(cat ${node_fs_pathname})" -            if [ $? -eq 0 ] && [ $(echo -n "$node_info" | wc -c) -gt 0 ] -            then -                if [ "$counter" -ne "0" ] +        if [ $(cat ${AK_ZPEERSINCOMING}|wc -l) -gt 0 ] +        then +            counter=0 +            count=0 +            _ak_fm_sort_uniq_file ${AK_ZPEERSINCOMING} +            max="$(cat ${AK_ZPEERSINCOMING}|grep -v '\.'|wc -l)" +            printf '[' > walk.aknet +            cat ${AK_ZPEERSINCOMING} \ +                | grep -v '\.' \ +                | sort \ +                | uniq \ +                | while read -r uip || [ -n "$uip" ] +            do +                ip="$(_ak_network_utils_pad_ip $uip)" +                count="$(( $count + 1 ))" +                _ak_log_debug "Scanning [${count}/${max}] $ip..." +                node_fs_path="$AK_ZPEERSDIR/inc/$(echo -n $ip| sed 's/://g')" +                scan_ts="$(_ak_datetime_unix)" +                if [ ! -d ${node_fs_path} ]                  then -                    printf ',' >> walk.aknet +                    _ak_log_info "New peer: $ip..." +                    mkdir -p ${node_fs_path}                  fi -                if [ ! -n "$node_info" ] +                node_fs_pathname="${node_fs_path}/${scan_ts}" +                _ak_log_info "Requesting peer's node info: $ip..." +                curl \ +                    --connect-timeout 3 \ +                    -A 'akd/0.1.0; https://github.com/arching-kaos' \ +                    "http://[$ip]:8610/v0/node_info" 2>/dev/null | jq -c -M > ${node_fs_pathname} +                node_info="$(cat ${node_fs_pathname})" +                if [ $? -eq 0 ] && [ $(echo -n "$node_info" | wc -c) -gt 0 ]                  then -                    node_info="null" +                    _ak_log_info "Appending: $ip..." +                    if [ "$counter" -ne "0" ] +                    then +                        printf ',' >> walk.aknet +                    fi +                    if [ ! -n "$node_info" ] +                    then +                        node_info="null" +                    fi +                    printf '{"incoming":{"ip":"%s"},"node_info":%s}' \ +                        "$ip" "$node_info" >> walk.aknet +                    counter="`expr $counter + 1`"                  fi -                printf '{"incoming":{"ip":"%s"},"node_info":%s}' \ -                    "$ip" "$node_info" >> walk.aknet -                counter="`expr $counter + 1`" -            fi -        done -        printf ']' >> walk.aknet -        mv walk.aknet $AK_ZPEERSFILE.incoming -        rm -rf $TEMPDIR -    else -        _ak_log_info "No incoming requests found." -    fi +            done +            printf ']' >> walk.aknet +            mv walk.aknet $AK_ZPEERSFILE.incoming +            rm -rf $TEMPDIR +        else +            _ak_log_info "No incoming requests found." +        fi      fi  }  | 
