diff --git a/apps/server/src/api-data/automation/__tests__/automation.validation.test.ts b/apps/server/src/api-data/automation/__tests__/automation.validation.test.ts index bf3edbf4d..cc636fc04 100644 --- a/apps/server/src/api-data/automation/__tests__/automation.validation.test.ts +++ b/apps/server/src/api-data/automation/__tests__/automation.validation.test.ts @@ -18,7 +18,7 @@ describe('parseOutput', () => { it('parses a valid payload', () => { const payload = { type: 'osc', - targetIP: 'localhost', + targetIP: 'qlab', targetPort: 1234, address: '/test', args: 'test', diff --git a/apps/server/src/api-data/automation/automation.validation.ts b/apps/server/src/api-data/automation/automation.validation.ts index f16571d29..3c902e1f4 100644 --- a/apps/server/src/api-data/automation/automation.validation.ts +++ b/apps/server/src/api-data/automation/automation.validation.ts @@ -186,9 +186,9 @@ function parseOSCOutput(maybeOSCOutput: object): OSCOutput { assert.isString(maybeOSCOutput.args); const target = replaceAutomationTemplates(maybeOSCOutput.targetIP.trim(), 'template.local'); - const isHostname = - target === 'localhost' || - /^(?=.{1,253}$)(?:[a-z\d](?:[a-z\d-]{0,61}[a-z\d])?\.)+[a-z\d](?:[a-z\d-]{0,61}[a-z\d])?$/i.test(target); + const isHostname = /^(?=.{1,253}$)[a-z\d](?:[a-z\d-]{0,61}[a-z\d])?(?:\.[a-z\d](?:[a-z\d-]{0,61}[a-z\d])?)*$/i.test( + target, + ); if (isIP(target) === 0 && !isHostname) { throw new Error('Invalid OSC target'); }