From a7af012b92f0dfd90cc3eb570e03144016646180 Mon Sep 17 00:00:00 2001 From: Melonai Date: Mon, 16 Aug 2021 18:17:06 +0200 Subject: Ability to pass request info through pipeline --- assets/src/components/share/Request.svelte | 6 +++--- assets/src/models/incoming_request.ts | 16 +++++++++++++++- assets/src/network/channel/messages/messages.ts | 3 +++ assets/src/network/channel/share_connection.ts | 7 ++++++- assets/src/network/channel/socket.ts | 1 + 5 files changed, 28 insertions(+), 5 deletions(-) (limited to 'assets') diff --git a/assets/src/components/share/Request.svelte b/assets/src/components/share/Request.svelte index a5e77e7..e554bfe 100644 --- a/assets/src/components/share/Request.svelte +++ b/assets/src/components/share/Request.svelte @@ -36,9 +36,9 @@ {/if}
  • Requested at {time}
  • -
  • {request.info.token}
  • -
  • Trusowo, Russia
  • -
  • Firefox 89
  • +
  • {request.info.ip}
  • +
  • {request.info.location}
  • +
  • {request.info.client}
  • {#if $state === IncomingRequestState.IN_FLIGHT} Transferring... diff --git a/assets/src/models/incoming_request.ts b/assets/src/models/incoming_request.ts index 8a8d7fb..4af1e02 100644 --- a/assets/src/models/incoming_request.ts +++ b/assets/src/models/incoming_request.ts @@ -18,6 +18,11 @@ export enum IncomingRequestState { // Identifying information about the requestor export type IncomingRequestInfo = { token: string; + + ip: string; + location: string; + client: string; + receivedAt: Date; }; @@ -31,9 +36,18 @@ export type IncomingRequest = { }; // Create a model for a new incoming request -export function newIncomingRequest(token: string): IncomingRequest { +export function newIncomingRequest( + token: string, + ip: string, + location: string, + client: string +): IncomingRequest { const info = { token, + ip, + location, + client, + receivedAt: new Date(), }; diff --git a/assets/src/network/channel/messages/messages.ts b/assets/src/network/channel/messages/messages.ts index 67f70ac..24380ae 100644 --- a/assets/src/network/channel/messages/messages.ts +++ b/assets/src/network/channel/messages/messages.ts @@ -17,6 +17,9 @@ export type ShareMessage = export type NewRequestMessage = { event_name: "new_request"; + ip: string; + location: string; + client: string; token: string; }; diff --git a/assets/src/network/channel/share_connection.ts b/assets/src/network/channel/share_connection.ts index 1bb4f14..bdc2b8e 100644 --- a/assets/src/network/channel/share_connection.ts +++ b/assets/src/network/channel/share_connection.ts @@ -35,7 +35,12 @@ export async function startShareConnection() { function onNewRequest(message: NewRequestMessage) { const token = message.token; - const request = newIncomingRequest(token); + const request = newIncomingRequest( + token, + message.ip, + message.location, + message.client + ); requests.addRequest(request); const unregister = onWithToken( diff --git a/assets/src/network/channel/socket.ts b/assets/src/network/channel/socket.ts index 7d14842..9d95577 100644 --- a/assets/src/network/channel/socket.ts +++ b/assets/src/network/channel/socket.ts @@ -39,6 +39,7 @@ export function joinRequestChannel( ): Promise { return joinChannel(socket, `request:${request_token}`, { share: share_token, + user_agent: navigator.userAgent, }); } -- cgit 1.4.1