okami.mom/albedo
git clone https://git.nkp.pet/okami.mom/albedo
e6935de
main
1%% One raw Cloud Code Assist error through the production discovery HTTP path. 2- module ( albedo_antigravity_error_support ). 3- export ([ discover / 1 ]). 4 5discover ( Body ) -> 6{ ok , Listen } = gen_tcp : listen ( 0 , [ binary , { active , false }, { packet , http_bin }, 7{ ip , { 127 , 0 , 0 , 1 }}]), 8{ ok , { _ , Port }} = inet : sockname ( Listen ), 9{ Server , Monitor } = spawn_monitor ( fun () -> 10{ ok , Socket } = gen_tcp : accept ( Listen , 5000 ), 11{ ok , { http_request , _ , _ , _ }} = gen_tcp : recv ( Socket , 0 , 5000 ), 12Length = headers ( Socket , 0 ), 13ok = inet : setopts ( Socket , [{ packet , raw }]), 14case Length of 0 -> ok ; _ -> { ok , _ } = gen_tcp : recv ( Socket , Length , 5000 ) end , 15ok = gen_tcp : send ( Socket , [ "HTTP/1.1 403 Forbidden\r\nContent-Type: application/json\r\n" , 16"Connection: close\r\nContent-Length: " , integer_to_list ( byte_size ( Body )), "\r\n\r\n" , Body ]), 17gen_tcp : close ( Socket ) 18end ), 19Base = iolist_to_binary ([ "http://127.0.0.1:" , integer_to_list ( Port )]), 20try albedo_antigravity : discover (<< "test-token" >>, { endpoints , <<>>, <<>>, Base }, fun ( _ ) -> nil end ) 21after 22gen_tcp : close ( Listen ), 23receive 24{ 'DOWN' , Monitor , process , Server , normal } -> ok ; 25{ 'DOWN' , Monitor , process , Server , Reason } -> error ({ error_server_failed , Reason }) 26after 6000 -> exit ( Server , kill ), error ( error_server_stalled ) 27end 28end . 29 30headers ( Socket , Length ) -> 31case gen_tcp : recv ( Socket , 0 , 5000 ) of 32{ ok , http_eoh } -> Length ; 33{ ok , { http_header , _ , 'Content-Length' , _ , Value }} -> headers ( Socket , binary_to_integer ( Value )); 34{ ok , { http_header , _ , _ , _ , _ }} -> headers ( Socket , Length ) 35end .