mirror of
https://github.com/GNS3/gns3-server.git
synced 2024-11-17 17:24:51 +02:00
Allow connection to ws console over IPv6
This commit is contained in:
parent
1d59afa9fb
commit
11f51b3809
@ -20,6 +20,7 @@ API routes for nodes.
|
|||||||
|
|
||||||
import aiohttp
|
import aiohttp
|
||||||
import asyncio
|
import asyncio
|
||||||
|
import ipaddress
|
||||||
|
|
||||||
from fastapi import APIRouter, Depends, WebSocket, WebSocketDisconnect, Request, Response, status
|
from fastapi import APIRouter, Depends, WebSocket, WebSocketDisconnect, Request, Response, status
|
||||||
from fastapi.encoders import jsonable_encoder
|
from fastapi.encoders import jsonable_encoder
|
||||||
@ -399,8 +400,18 @@ async def ws_console(websocket: WebSocket, node: Node = Depends(dep_node)) -> No
|
|||||||
log.info(
|
log.info(
|
||||||
f"New client {websocket.client.host}:{websocket.client.port} has connected to controller console WebSocket"
|
f"New client {websocket.client.host}:{websocket.client.port} has connected to controller console WebSocket"
|
||||||
)
|
)
|
||||||
|
|
||||||
|
compute_host = compute.host
|
||||||
|
try:
|
||||||
|
# handle IPv6 address
|
||||||
|
ip = ipaddress.ip_address(compute_host)
|
||||||
|
if isinstance(ip, ipaddress.IPv6Address):
|
||||||
|
compute_host = '[' + compute_host + ']'
|
||||||
|
except ValueError:
|
||||||
|
pass
|
||||||
|
|
||||||
ws_console_compute_url = (
|
ws_console_compute_url = (
|
||||||
f"ws://{compute.host}:{compute.port}/v3/compute/projects/"
|
f"ws://{compute_host}:{compute.port}/v3/compute/projects/"
|
||||||
f"{node.project.id}/{node.node_type}/nodes/{node.id}/console/ws"
|
f"{node.project.id}/{node.node_type}/nodes/{node.id}/console/ws"
|
||||||
)
|
)
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user