Server.callWithGET broken on Mac compiled plugins
-
Yes, kind of what I was expecting:
Error Domain=NSURLErrorDomain Code=-1200 "An SSL error has occurred and a secure connection to the server cannot be made." UserInfo={_kCFStreamErrorCodeKey=-9824, NSLocalizedRecoverySuggestion=Would you like to connect to the server anyway?, NSUnderlyingError=0x600000c87ae0 {Error Domain=kCFErrorDomainCFNetwork Code=-1200 "An SSL error has occurred and a secure connection to the server cannot be made." UserInfo={NSErrorFailingURLStringKey=https://download1981.mediafire.com/ufgigkkchdag/brk7qgc382u8j64/HiseServerTest.json, NSLocalizedRecoverySuggestion=Would you like to connect to the server anyway?, _kCFNetworkCFStreamSSLErrorOriginalValue=-9824, _kCFStreamPropertySSLClientCertificateState=0, NSLocalizedDescription=An SSL error has occurred and a secure connection to the server cannot be made., _kCFStreamErrorDomainKey=3, NSErrorFailingURLKey=https://download1981.mediafire.com/ufgigkkchdag/brk7qgc382u8j64/HiseServerTest.json, _kCFStreamErrorCodeKey=-9824}}, NSLocalizedDescription=An SSL error has occurred and a secure connection to the server cannot be made., NSErrorFailingURLKey=https://download1981.mediafire.com/ufgigkkchdag/brk7qgc382u8j64/HiseServerTest.json, NSErrorFailingURLStringKey=https://download1981.mediafire.com/ufgigkkchdag/brk7qgc382u8j64/HiseServerTest.json, _kCFStreamErrorDomainKey=3}
Please try another server - it looks like this file-hosting site has some issues.
-
@Christoph-Hart thanks for looking into it.
I'll try another file-hosting site and see what we get. -
@Christoph-Hart I just tried using Dropbox and it fails with this also.
I'm keen to try with a few others hosts. If anybody else has any file hosting recommendations or can test things out at all please chime in -
There's a tool on macOS that you can run with any URL and it validates everything.
nscurl --ats-diagnostics https://download1981.mediafire.com/ufgigkkchdag/brk7qgc382u8j64/HiseServerTest.json
This spits out a lot of errors. Although
nscurl --ats-diagnostics https://forum.hise.audio/topic/3885/server-callwithget-broken-on-mac-compiled-plugins/33
also produces the error every time that
TLSv1.3
is being used (whatever this is lol). The TLS versions below 1.3 run fine though so maybe HISE is using an older version for whatever weird reason... -
@Christoph-Hart interesting...
I was actually literally in the process of testing using:
Server.setBaseURL("https://forum.hise.audio/");
Server.callWithGET("api/users?section=sort-posts", {}, function(status, response)
as I came across an example that you created in the 'Who is it?' post by @ulrik. Your example pulled back profile images for HISE users.
Compiling as I type and will feedback...
-
Yeah I did that already and it worked here :) So as it seems we don't need to care about the errors in TLS1.2, but the media fire URL threw these errors with all versions down to TLS1.0, so that's your answer.
-
@Christoph-Hart strange because this snippet (that's set to call hise.audio) didn't work on my machine testing in Logic X ️
Could it be something to do with the use of the timer to print the response in the example perhaps? I know I'm might be clutching at straws here!
HiseSnippet 1307.3ocsWsraabCEkiim.K051FftoqJgPWLFvQObdzhFDDEaKGXj3DgH6jrKgZFJIFOhb.IGmL0v.8mn+D8qnK699CzMceQ+Abujbd4D4TGilQ.Rl795bO7NWd8PoHjpTBIxqw9YITj2m6OJiqms0LBii1caj2W5OhJOhJ2mpzT4FnMyRHJEMB44ckGXTxqwxH6yeeuMIwDdHsZKD5YBVH8Qr4Lc0tC6+PVb7NjH59r40z9l82MTv2RDKRA.cE+tnDR3gjozGSLpsjOx6pChXZgbjlnoJj2xaJhxFMS7FtS+mwTrwwTyhdnQfibauiHNxfXytnslwhiFVj3JD3kgUzvUbzvW6uGKhUteEc7UVA3JKpyGdK8gfWu5vq6EGdd0f2xN3cM+QgRVhtRhAael+tb3LZBANBpCKmtnk9ik82R.Zv0smSNjtiDVTZQvs61cc7s51cs6rZSyG3nPowGQj3pB.7cwEdXJUukXdhfCKBZUoRKi8U19HxXZbuy0Nm3VEwz7oSm7.h2hDGWrKiGy3T7jTdnlI3XAuJjFWKEwAgE9ccHzwoz0Vs4wq1DCOtusdViiMwDqE3wP05gfmvwBRjIHNzzVQAjoouU2ZcbqRr0fMIv41iMNrgyu1ebPwX2lDE8fm9nfVyz5D0O1oyDgLcd6YLEsMIMhI5X8WciMXCPFE7PF1pNVwzTLSgIGQX.ZioXhB+zAi1Ge+g6hGmgecJPuIRZBkGw3SwupCIg8JSNomQwg.u0LGSl+94L8rGLX+fVfRcRUTo5dJpkFuKT5nudhPoUPtd7IqWRvAJnFNUsNVRU.opLjIPmETo6QRmhkvYagN24cEp.gNGcFQvAlRDSamHYPQfZsyHLqMXgTaZMHC1nqqfrP3IqcGLth8NY0lmXOd9uqJMmN4EJl5pwPmkfETDUbZCmHVDX3zXwTLgGgsvsLYsRLELm8kkLHkGvmBEqsCkTnOf0MOY7qAFOv38LCRraVhiRRuphcAkhk7j66cXwzQYPS44lr11CQFTaysopC0hj0rbhoohQVPKHYZqeqgPdiDJyxAVouMruHwQ9l8NwQH0du6wBvJ.pMOtYilmzD+thlLYgxx42XieWf37Hd9FFvSmOlJKd0tPQnk3Y645e98bqekPnqfolhB9tbl9IvqTmWmXTdUlombNp.U01NxeQdG4MS0ZAGwhrWkVVcgrnt9EinC1cahlT3KvsPnRnRMyjEdaSOBt3z0suge9YIjrkU2HuUbQd07HaqXrAdEeW0C5skA7meX+rxE3v9ugEomUAGU+YT1zYU2Q+mj9lpNfN89cX4D.giX+TUBz+f9nZPw+hQBU34UjZ342F0mo1SLGbEQlUv9W7Dci5I5yqmnGkmE87+HaQixIHeu+A7SA4368MvJiKKFRowUOE8WmZC1GAfuQM.i9tZ.FkkC3C7+eu+MFWkT+pW8j5aeujB8Km5Rp2ezCX.HQTZLQe1ohLiBlK.h9YF+vLhAGtRKq9nheRFU5hB2q4OjoCmsX7tzBvK7V5mZ7lO34p9ClLANbq.6x967hO8SYhdpHUCiRrGQKYP0o+iSmOBpFBo.R3bZro0p2Rl5b25tl0FlYDLChcwovStvdl0d4B6UHDMmDJEuLz05zLZ6J1c.LwsS32veOyZbuh1k99ca2EMGl39kggFp35.1WrMabIr4FWBat4kvlacIr41WBa99KgM+vGzFy+ry8S0h4tWSfMFNvdskm2.tYxTaEI5ewXpqqK
-
-
@LeeC dont know about the Get but the POST works fine for me in Reaper...
-
@Lindon Did the POST work for you in Reaper on a Mac?
I've created an API endpoint using Amazon AWS and can successfully POST to it in HISE using the snippet below.
When compiled it works in these DAWs on a Mac:
Studio One
Ableton LiveHowever, it fails in the following DAWs on a Mac:
Logic X
ReaperHiseSnippet 1418.3ocsWktaabCDlqi2fH0nhFf9i1+Qrn+PFvVWV4PIHHJ9Jvow1BQNG.EAoT6RIw3UjaWx01JAFnOJsuI8QIOB8MncH2SYK65nhrBvFjyA+lONbFxdgBWpTJBQVkNbZ.EYca69S4pwaNlv3nc2BY8C18ogGSCOjJUzv6ie5a5i6cPeEZioADoj5grrtwyzZaUZYj46uexFDeB2klOEB8ZAyk9B1DlJe1dc+Ylu+NDO5grIEztc2ccE7ME9hH.Y2vtAJf3dDYDcehVskrQV2baOlRD1WQTTIxZ4MDdS6OVbBOV+WyjrA9T8fln9fihmdGgumFw5YQaNl460KkAjHvK8x4iaDyGeu8dLOV1747x2YDfysnHeXszUAulEgWiqO7rJ.ukig2cr66FxBT4RzX6ar2kCaVCIvVPQXEqKZo+7l1aJ.M3pZSHGQ2IDFjYQ060nwp361nwJOpRY8OXqPpvGSBw4YB3GiS8vHpZSwj.AGFT0IWEGs8419Bx.peyK0tXwyyl1WsMsmmMstZaZMOaV+psYcmKxGCHR5qd4K.CcFqTAxGVu9u04CQCkDuSFWidJ0MRQWiDvpEIWiRjp0ZViLg7QAmbhrlqXhyLvPZ3tMI99ZOV2iNjD4qp+bxwDoYmyPqFTDGF0jT.dJ5oJmUSAiFkw.dFo49NNLpWOY2DqmKNvf4NbLE+rsODSBGEMABdIlHwOu+A6iEC9.0UU.sA3GW9SkwvmCYJ04gXmVNkOKgiz+XbeFmhGFwcULAGK34IGZhNT3W0MkkWE7oeDckJk+TEiSi+qAlJruNfvJAd.TW4HvSXeAwKiHZNSn53jwAsmifJkKwFVMd09jdcJEubl+EiPsUaDSmUKPqkRAjQGWf2dCSMFnqp4r6p3fUyB4pR37ejbUbHUBgoTGd3juy4Enj5Wja.dJkih+BoivgPdSpNO57BkfvXGMiHXmPJ7o0BBYPttbkYDNsFXQnRWcNrZqFw0DREd1JOBiyIuypjr6+eWXPyuIY.5fc.Tbu5bxNROvoyK0HPm.3KFgIbOrAtYAqQhdCe1ymSgPda9HHKrlaHEJEabyAlL4pZuOUiDyjY3HizySEqWeNYYg+Ri2kxFyUry.HCyYVclMeLirK92cX9z9SgdsSzDnoiPX0BStEUdjRDrhgd0sHzxp5.7RM0oZt8jPlhlDiYqfdiTDDuOpm6rXtsvYy8EfUPTCmoKU9rx3yKZ3v4JKYqxW624HNYEubCqxilLfFld7OUQnA2rcPsu7NnEav6Fm6UPQAeWNScP.keY8UQIIr5NrInBTUY5u9sI8W2HRoDbDyybCorDUjA0EulC5U6tEQQR8E3VXoBngJlNJr1hdLbMn3d2krS1KgnK6fBx5VwqbkjU1j2XV3aYGmmgNMaA69xtSyF7Wuq6ILO03b3H6NlxFMN+FWelzUm6YtB0P.d8YeLG8ceUWTAbXe8Xfbv7qjhfoeWlbOgtGBIbZJ0e8ixVEb7u+lBNFebRH7.6EqmKZVRpK+7jDpiYERu94ssa2py5M67fF2uyWTHrdgP.8SEBAzzjP3Gsujl7mCi+wGu.FexEwX6Nq2oSi1eQXrcALBaY4X7ye3+exzEutJboYgWjOQM6Mo0OeHQ.TbXlqrpuVJWxTSK97huJWu95B26X2iobGOe7tzbvKTK3qMdSdrRE6sGNDp6mC1ks24se8eYB5khHEiOZOhJjAIT16GMoOjX5RAjv4TecAbqkzkZiG2POVyL8obOyf+A9RD1TO1JQXyTgnID2Pw6ciKPqeNzsLy.XhadUXI68ziwMSKJaa2nVCzD3UZu20USEqAXe91zZArY8Evl1KfM2cAr4dKfM2eAr4AWoM5GH+zHkXR7wDXhdaaZNZYsMm.YYlLRz+BDTHpJ
-
@LeeC yes, sorry if I wasn't clear it works in Reaper on both Mac and Windows.
-
@Lindon thanks for clarifying!
Do you have a simple snippet that works your side that I could try here please?
I've been going at this for days, trying various file hosts & endpoints and I can't find anything that works across all DAWs on a Mac :upside-down_face:
Cheers
-
@LeeC sorry cant point you at the server - as its the clients and its restricted...
but heres some parts of it:// this is just setting up the URL to use...it could be anything you want.. Server.setBaseURL("https://your.servername.com"); var temp = "api/user/login/"; inline function doServerValidation(Mail, Pass) { // set up the post "packet" to send across.. const var p = { "email": Mail, "password": Pass }; // call the server.... Server.callWithPOST(temp, p, function(status, response) { // display the results... Console.print("status is:" + status); Console.print("response is:" + trace(response)); }); };
-
Actually I do lot more that you might want to consider
-
first start a timer( lets make it execute after 90 seconds....)
-
in the timer call back - if it executes it means we've been hanging around for 1.5 mins with no response from the server so tell the user their internet connection is broken...
-
callWith POST callback turn the server off... so we never get to the "hey your internet no worky" problem...
-
-
@Lindon no worries thanks.
Yeah that's pretty much the same setup that I've got in the snippet I posted above.
If you get chance to try my snippet it would be appreciated but no worries if not.
Honestly, I'm lost as to what's going on after trying multiple servers/setups... All work in HISE but in DAWs it's blah blah blah -
@Lindon said in Server.callWithGET broken on Mac compiled plugins:
Actually I do lot more that you might want to consider
-
first start a timer( lets make it execute after 90 seconds....)
-
in the timer call back - if it executes it means we've been hanging around for 1.5 mins with no response from the server so tell the user their internet connection is broken...
-
callWith POST callback turn the server off... so we never get to the "hey your internet no worky" problem...
Sure, this is exactly the kind of logic I have in the plugin I have ready to release. I noticed that a connection to the internet wasn't being made on some DAWs which gave birth to this thread.
The snippets posted are just to demonstrate the problem.
Appreciate the insight though thanks and if anybody has a few quick minutes to test the snippet their end and can spot anything it would be great.
-
-
so tell the user their internet connection is broke
There is a function to check for a working connection.
Server.isOnline()
-
Actually I am having the same issue in all of my macOS systems. (Catalina and High Sierra)
Standalone works, Hise project works but compiled plugin doesn't work in Logic Pro X. Can't connect to the server. Windows works also.
Has anyone figured it out to fix it?
-
Hi @orange, I tried multiple servers and setups but couldn’t get things to work with Logic Pro X, so
I decided to remove the code that depended on these server calls in the end.If you need help testing anything out further just let me know :)
-
Hey @Christoph-Hart, myself and @orange have just been doing some testing and it looks like it’s possible to get a server response in LPX, but it’s not the prettiest workaround.
It seems that playback through the plugin is required in order to trigger the Timer Object that returns the response.
You can see in the video below that initially no response is returned when hitting the ‘Call With Post’ button, but as soon as audio is played back through the plugin the response is returned.
Thanks for putting together the code snippet for testing btw @orange :grinning_face_with_big_eyes: