World: r3wp
[!Cheyenne] Discussions about the Cheyenne Web Server
older newer | first last |
PeterWood 8-Nov-2010 [9201x2] | The code in the Cheyenne cgi.r handler will only create the library binding for Windows and Linux. |
I could patch cgi.r if I was certain that I should use /usr/lib/libc.dylib in place of /lib/libc.so.6 or .5 | |
Kaj 8-Nov-2010 [9203] | So do you have the Library component on OS X? That's what's needed to do it |
PeterWood 8-Nov-2010 [9204] | Yes it has the Library component: |
Kaj 8-Nov-2010 [9205] | Is OS X detection missing in Cheyenne, then? |
PeterWood 8-Nov-2010 [9206x2] | This is the code is cgi.r that creates the binding; any [ all [ system/version/4 = 3 ; Windows libc: load/library %kernel32.dll _setenv: make routine! [ name [string!] value [string!] return: [integer!] ] libc "SetEnvironmentVariableA" body: [_setenv name value] ] all [ ; UNIX any [ exists? libc: %/lib/libc.so.6 exists? libc: %/lib/libc.so.5 ] libc: load/library libc _setenv: make routine! [ name [string!] value [string!] return: [integer!] ] libc "setenv" body: [_setenv name value 1] ] ] |
As you can see it is missing OS x | |
Kaj 8-Nov-2010 [9208] | Detection is in misc/os.r. It's very simple, so I think it should work |
PeterWood 8-Nov-2010 [9209] | It's not the detection that's missing, it's the binding to the correctly named lib that is missing. |
Kaj 8-Nov-2010 [9210x2] | Tracing it. That's odd: the general binding is done in misc/macosx.r. I don't see why cgi.r should do it double |
You can copy the relevant code from macosx.r to cgi.r | |
PeterWood 9-Nov-2010 [9212] | Thanks, Kaj - I'll try to check that out later. |
Dockimbel 9-Nov-2010 [9213] | Tracing it. That's odd: the general binding is done in misc/macosx.r. I don't see why cgi.r should do it double The CGI.r code is run in a separate process, it inherits OS bindings from misc/macosx.r only when encapped. It should have worked using the /cmd binary, I need to look into it and patch the CGI code to not bind twice when encapped. |
PeterWood 9-Nov-2010 [9214x3] | Just to confirm that I am running the /cmd binary. |
.. and am running CGI scripts not fastCGI scripts - I even checked that the env variables are getting set by running a trivial Ruby cgi,. | |
.. and they are not getting set. | |
Dockimbel 9-Nov-2010 [9217] | and am running CGI scripts not fastCGI scripts REBOL scripts are run directly by CGI.r, the CGI interface is emulated, set-env is not used for REBOL scripts. I'll do some testing with non-REBOL scripts on OS X today. |
PeterWood 9-Nov-2010 [9218x5] | Doc - I am trying to test running REBOL/Services CGI under Cheyenne. It looks as though REBOL/Services will not run as fastcgi so we are running as an ordinary cgi. |
The actual system will run under Windows but we've encountered a strange problem. I'm trying to do some testing on my Mac to try to isolate the problem. | |
The problem is that the response back to the client is getting corrupted but we haven't isolated where yet. | |
This is a debug print of a correct response: req/result [ done [reply seq 1 service "Generic REBOL Service" commands 1 time 0:00] ok [date 9-Nov-2010/2:16:33-7:00] ] | |
Quite often we get something like: req/result [?done [reply seq 1 service "Generic REBOL Servidb" commands 1 time 0:00] ok [date 9-Nov-2010/2:16:35-7:00] ] | |
Dockimbel 9-Nov-2010 [9223] | What are you using REBOL/Services for? |
PeterWood 9-Nov-2010 [9224] | As an archive for images collected from remote cameras. (I didn't write the system). The system has been live for a few years. It currently runs under Xitami and I'm trying to help move it to a more modern web server. We are hoping to move to Cheyenne. After the system has been migrated, we would then have the possibility to convert it, or parts of it, to a Web App. |
Dockimbel 10-Nov-2010 [9225x3] | PeterWood: I've fixed the missing setenv mapping for Mac OS X in revision 108. Here are the binaries for you to test: http://cheyenne-server.org/tmp/cheyenne-r108-pro-osx.gz http://cheyenne-server.org/tmp/cheyenne-r108-cmd-osx.gz |
You can also test it using the Perl CGI test scripts from the source archive in %www/perl (just change the shebang line to your local Perl interpreter path). | |
Btw, Cheyenne resets all CGI ENV variables after each CGI request for security concerns, so don't be surprise to not be able to see them from shell. | |
PeterWood 10-Nov-2010 [9228x2] | Many thanks, Doc. I'll test it straight away. |
It's working fine, thanks - I can confirm that I can access the env variables from a Ruby CGI. | |
Dockimbel 10-Nov-2010 [9230] | Good! |
Robert 10-Nov-2010 [9231] | Cool Cheyenne on OSX... I will give it a try on our new server. |
Dockimbel 17-Nov-2010 [9232] | SVN revision 110: FEAT: default REBOL CGI scripts are now run as normal CGI. FEAT: new config keyword: fast-rebol-cgi. Forces running REBOL CGI scripts in FastCGI mode. FIX: (Windows) CGI handler rewritten to fix environment variables passing. FIX: CGI 'set-env mapping code refactored, setup errors are now properly logged. FIX: CGI scripts errors are now logged in %trace.log file. Windows binaries are available for testing: http://cheyenne-server.org/tmp/cheyenne-r110-pro.zip http://cheyenne-server.org/tmp/cheyenne-r110-cmd.zip |
Dockimbel 19-Nov-2010 [9233] | New binaries for revision 114: http://cheyenne-server.org/blog.rsp?view=24 |
Endo 24-Nov-2010 [9234] | what was the difference between pro and cmd versions? Sorry if it was asked for several times before. |
Dockimbel 24-Nov-2010 [9235] | - pro: REBOL/Pro kernel - cmd: REBOL/Command kernel |
Endo 24-Nov-2010 [9236] | no functionality difference, right? |
Dockimbel 24-Nov-2010 [9237] | No, Cheyenne just relies on /Library and /Shell components which are present in both kernels. |
GrahamC 24-Nov-2010 [9238] | Yes, command kernel allows you access to odbc database sources |
amacleod 25-Nov-2010 [9239] | Does cheyenne support callbacks |
Kaj 25-Nov-2010 [9240] | From where to where? |
amacleod 25-Nov-2010 [9241x5] | from a client app (phone app) to my server with my data base. like a json call in js |
using jo js framework; joScript(url + "&callback=Commuter.dataSource.setData"); | |
So the server, assuming it supports a callback, sends back something like this, which gets executed immediately: Commuter.dataSource.setData({ ... JSON data ...}); | |
Maybe i'm confuesed. Is the callback a function of the web server or is it just how I setup my cgi script? | |
do i just format my data result to look like: Commuter.dataSource.setData({ ... JSON data ...}); and then 'print' it for the client to catch (read)? | |
Oldes 26-Nov-2010 [9246x4] | I think so. |
Also you may need to set up correct mime type. The best way is to use wireshark to see how it looks elsewhere. | |
But basicaly I guess that your framework is just using JS to get some data from server. | |
So it must be pretty easy to make it in Cheyenne.. so the final answer is: yes:) | |
Kaj 26-Nov-2010 [9250] | I don't think that should be called a callback. The most defining nature of callbacks is that they are asynchronous, and that just doesn't fit into the browser/web server model |
older newer | first last |