@@ -137,15 +137,46 @@ is_loadbalancing_enabled() {
137137 return 0
138138}
139139
140+ customwget() {
141+ wget_infos=$(lua /lib/gluon/gluon-mesh-wireguard-vxlan/get-wget-infos.lua)
142+ user_agent=$(echo "$wget_infos" | sed -n 1p)
143+ gluon_version=$(echo "$wget_infos" | sed -n 2p)
144+ board_name=$(echo "$wget_infos" | sed -n 3p)
145+ openwrt_version=$(echo "$wget_infos" | sed -n 4p)
146+ kernel=$(echo "$wget_infos" | sed -n 5p)
147+ target=$(echo "$wget_infos" | sed -n 6p)
148+ fw_release=$(echo "$wget_infos" | sed -n 7p)
149+
150+
151+ # This header check is only required for OpenWrt versions <= 23.05,
152+ # as headers are first available in OpenWrt 24.10.
153+ headerret=0
154+ wget -q "http://[::1]" --header="X: X" 2>/dev/null || headerret=$?
155+ # returns Network Failure =4 if headers for wget are available,
156+ # and Generic Error =1 if no headers for wget are available.
157+ if [ "$headerret" -eq 1 ]; then
158+ force_wan_connection wget -q -U "$user_agent" -O- "$@"
159+
160+ else
161+ force_wan_connection wget -q -U "$user_agent" \
162+ --header="X-Gluon-Version: $gluon_version" \
163+ --header="X-Board-Name: $board_name" \
164+ --header="X-Openwrt-Version: $openwrt_version" \
165+ --header="X-Kernel-Version: $kernel" \
166+ --header="X-Target-Name: $target" \
167+ --header="X-Firmware-Version: $fw_release" \
168+ -O- "$@"
169+ fi
170+ }
171+
140172get_wgkex_data() {
141173 local version user_agent
142174 version="$1"
143175 WGKEX_BROKER="$PROTO://$WGKEX_BROKER_BASE_PATH/api/$version/wg/key/exchange"
144- user_agent=$(lua /lib/gluon/gluon-mesh-wireguard-vxlan/get-user-agent-infos.lua)
145176
146177 logger -p info -t checkuplink "Contacting wgkex broker $WGKEX_BROKER"
147178
148- if ! WGKEX_DATA=$(force_wan_connection wget -q -U "$user_agent" -O- --post-data='{"domain": "'"$SEGMENT"'","public_key": "'"$PUBLICKEY"'"}' "$WGKEX_BROKER"); then
179+ if ! WGKEX_DATA=$(customwget --post-data='{"domain": "'"$SEGMENT"'","public_key": "'"$PUBLICKEY"'"}' "$WGKEX_BROKER"); then
149180 logger -p err -t checkuplink "Contacting wgkex broker failed, response: $WGKEX_DATA"
150181 else
151182 logger -p info -t checkuplink "Got data from wgkex broker: $WGKEX_DATA"
0 commit comments