Skip to content

Commit

Permalink
Allow selecting multiple locations for DNS lookups, and select all by…
Browse files Browse the repository at this point in the history
… default.
  • Loading branch information
Daniel15 committed Jan 26, 2020
1 parent dd490bc commit f03bdef
Show file tree
Hide file tree
Showing 3 changed files with 28 additions and 18 deletions.
35 changes: 23 additions & 12 deletions src/DnsTools.Web/ClientApp/src/components/MainForm.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -50,7 +50,8 @@ const toolOptions: ReadonlyArray<ToolMetadata> = [
{
tool: Tool.DnsLookup,
label: 'DNS Lookup',
description: 'Look up a DNS record.',
description:
'Look up a DNS record from {workerCount} locations around the world.',
},
{
tool: Tool.DnsTraversal,
Expand Down Expand Up @@ -269,17 +270,27 @@ function DnsLookupInput(props: {
</select>
</FormRow>
)}
<FormRowDropdownList
label="From"
options={props.workerOptions}
selectedItem={props.input.worker}
onSelect={newWorker =>
props.onChangeInput({
...props.input,
worker: newWorker || props.config.defaultWorker,
})
}
/>
{props.tool !== Tool.DnsTraversal && (
<Locations
config={props.config}
input={props.input}
onChangeInput={props.onChangeInput}
workerOptions={props.workerOptions}
/>
)}
{props.tool === Tool.DnsTraversal && (
<FormRowDropdownList
label="From"
options={props.workerOptions}
selectedItem={props.input.worker}
onSelect={newWorker =>
props.onChangeInput({
...props.input,
worker: newWorker || props.config.defaultWorker,
})
}
/>
)}
</>
);
}
Expand Down
8 changes: 4 additions & 4 deletions src/DnsTools.Web/ClientApp/src/pages/DnsLookup.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -31,10 +31,10 @@ export default function DnsLookup(props: Props) {
const {host, type: rawType} = props.match.params;
const type = getLookupType(rawType);
const queryString = useQueryString();
const workers = useMemo(
() => getWorkers(props.config, queryString, [props.config.defaultWorker]),
[props.config, queryString],
);
const workers = useMemo(() => getWorkers(props.config, queryString), [
props.config,
queryString,
]);

const request: DnsLookupRequest = useMemo(
() => ({host, type, workers: Array.from(workers)}),
Expand Down
3 changes: 1 addition & 2 deletions src/DnsTools.Web/Hubs/ToolsHub.cs
Original file line number Diff line number Diff line change
Expand Up @@ -60,14 +60,13 @@ public ChannelReader<WorkerResponse<DnsLookupResponse>> DnsLookup(
CancellationToken cancellationToken
)
{
var workers = request.Workers ?? new[] { _defaultWorker }.ToImmutableHashSet();
return new GenericRunner<DnsLookupRequest, DnsLookupResponse>(
_workerProvider,
client => client.DnsLookup(new Worker.DnsLookupRequest
{
Host = request.Host,
Type = request.Type,
}, cancellationToken: cancellationToken)).Run(request, Clients.Caller, workers, cancellationToken);
}, cancellationToken: cancellationToken)).Run(request, Clients.Caller, request.Workers, cancellationToken);
}

public ChannelReader<WorkerResponse<DnsTraversalResponse>> DnsTraversal(
Expand Down

0 comments on commit f03bdef

Please sign in to comment.