r3wp [groups: 83 posts: 189283]
  • Home
  • Script library
  • AltME Archive
  • Mailing list
  • Articles Index
  • Site search
 

World: r3wp

[!Cheyenne] Discussions about the Cheyenne Web Server

Dockimbel
9-Jul-2007
[1937]
full time of => on
btiffin
9-Jul-2007
[1938]
Go Doc Go!
Maarten
9-Jul-2007
[1939]
Go go go!
Dockimbel
9-Jul-2007
[1940]
:-)
Terry
10-Jul-2007
[1941]
Doc, Doc .. he's our man,
If he can't do it, no one can,
goooooo Doc!
Terry
11-Jul-2007
[1942]
If Carl was around more, maybe he'd get more cheers too?
Graham
11-Jul-2007
[1943]
This is from the Rebol cookbook 

REBOL [Title: "HTTP Post Uploader"]

    url: http://www.rebol.net/cgi-bin/test/post.r
    data: read/binary %/c/rebol/rebol.exe

    print ["Sending Size:" length? data "Checksum:" checksum data]
    result: read/custom url reduce ['post data]
    print ["Server Replied:" result]

how does Cheyenne cope with this type of post ?
Dockimbel
11-Jul-2007
[1944x2]
No tested, but I don't why this would be a problem for Cheyenne, 
as long as it's a valid HTTP request. There's only two upload encodings 
that Cheyenne currently doesn't support: multipart/mixed and chunked. 
Chunked encoding is only supported in Cheyenne's responses.
I don't => I don't see
Chris
11-Jul-2007
[1946]
Graham, the only problem with that Rebol lies in such cases -- it 
automatically sends 'Content-Type: application/x-www-form-urlencoded', 
even if you try to override it.
Dockimbel
11-Jul-2007
[1947]
Good point, Cheyenne may fail decoding the Posted data if it's not 
in url-encoded format. The only workaround is to set Content-type 
to something like  'application/octet-stream.
Oldes
11-Jul-2007
[1948x3]
chris: using my cookies-daemon you can send multipart data if you 
need it (as it's part of my http patch)
so the code above can be rewriten as:

do http://box.lebeda.ws/~hmm/rebol/cookies-daemon_latest.r
url: http://www.rebol.net/cgi-bin/test/post.r

result: read/custom url [multipart [myfile %/c/rebol/rebol.exe]] 
  ;== same like <INPUT TYPE=FILE NAME=myfile>
but as I'm now looking at the example above, it's not good way how 
people should post binary data at all
Chris
11-Jul-2007
[1951x5]
I have an embryonic Rest protocol (doesn't work properly yet).  It's 
a reimplementation of http designed more for web services (Rest, 
not soap, though soap if you wish).
; requires QM
do http://www.ross-gill.com/QM/qm.r
context load http://www.ross-gill.com/r/rest.r
Still doesn't read the sub-port correctly, but the idea is to build 
requests:
res: read/custom http://example.com/upload.r[
    action: 'post content: "REBOL [] message" type: 'text/x-rebol
]
Sorry, rest://example.com/upload.r
Anyway, better discussed in the Ports group...
Graham
11-Jul-2007
[1956x2]
Yes, I'm surprised that Carl's example works.  It sends data as binary 
but claims it is url-encoded.
In fact I suspect that it fails because the data is not url encoded
Dockimbel
12-Jul-2007
[1958]
Cheyenne new version 0.9.16 is ready. The new FastCGI multiplexed 
support took me some time to debug, but the resulting PHP interfacing 
is now really stable. I just need to update the RSP API doc and run 
a few tests, so the download link will be published here in a couple 
of hours.
Pekr
12-Jul-2007
[1959]
heh, will try once again on my Vista :-)
Dockimbel
12-Jul-2007
[1960x5]
Cheyenne release v0.9.16 beta. Download at http://softinnov.org/tmp/cheyenne-r0916.zip

Changelog :

v0.9.16 - 12/07/2007
	
	o Localization framework added to RSP. API overview :
	
		- #[text] in static parts of RSP pages will be translated.
		

  - new function: say "data" : translate a string! value in the current
		  language.
		  
		- session's new 'lang variable can set the current language.
		
		- new config file options to control default language and 
		  locales resources folder.
		

 o Decode-cgi rewrote from scratch. Cleaner and 2-3 times faster than 
 before.
	

 o RSP request params decoding rewrote. Now GET and POST parameters 
 are unified
	  in request/content.
	  
	o BugFix for encapping %misc/mime-types file.
	

 o File upload support redesigned. Now big files (user defined threshold) 
 are

   directly written to disk in temporary files, instead of being held 
   in memory.

   The temporary files are deleted once the request is completed. So 
   now

   Cheyenne supports files upload up to 2Gb (R2 port! limitation).
	  

 o CGI execution extended to any scripts (not just REBOL). If found, 
 the

   shebang line (#!) is honored (on all platforms). Several perl scripts
	  added in %www/ folder as demo.
	  

 o Module's 'on-started event now fired only once, when multiple HTTPd 
 instances
	  are listening on more than one port.
	  

 o New module : mod-extapp for launching and managing external applications.

   Only the start and shutdown actions are currently supported. Load 
   balancing
	  will be included in future.
	
	o FastCGI protocol reliability improved and some bugs fixed.
	
	o RSP-API documentation updated.
To enable the PHP support: edit the %httpd.cfg config file, uncomment 
the indicated section and change the path to the php-cgi binary, 
that's all. The new mod-extapp will launch and kill PHP for you.
For RSP users, watch out the new way GET and POST parameters are 
unified, it may break some of your scripts (the ones using POSTed 
form data).
perl demo CGI are in %www/perl/
On windows platforms, you'll get the infamous DOS window flashing 
when executing an external CGI ! It's just a matter of 1 flag to 
correctly set in 'call C source code, if you're really annoyed by 
that, ask RT to fix it asap (for 2.7.6 that would be good)! ;-) I 
may reimplement completely call command in REBOL, but it would be 
a big waste of time and energy...it should be a 10 minutes fix for 
RT. Addind a time limit to 'call would be a good thing too, it would 
also avoid me the reimplementation of 'call to add such feature....
Pekr
12-Jul-2007
[1965]
so cool ...
Dockimbel
12-Jul-2007
[1966]
In theory, Cheyenne should be able to connect and pass requests to 
any FastCGI application, but it was only tested with PHP.
Pekr
12-Jul-2007
[1967]
any chance of getting:

AddHandler rebol-cgi-dispatch .html
Action rebol-cgi-dispatch /cgi-bin/rebol-cgi-dispatch.cgi

to work already? :-)
Dockimbel
12-Jul-2007
[1968]
No yet, I want a better API and config options than Apache which 
is a real mess ! So, I have a prototype of how it should be a AddHandler 
option should be added, I need to mature that a little more before 
implementing in the next release. Maybe I'll write an article on 
Cheyenne's blog about that to have some feedback....
Pekr
12-Jul-2007
[1969]
would be good ...
Dockimbel
12-Jul-2007
[1970x3]
Maybe something like:

process .html by "/cgi-bin/rebol-cgi-dispatch.cgi"
spec in pseudo code: 


process [any [extension | URL | folder | filename]] by [handler | 
URL-with-target]
BTW, I didn't have time to test this new release on linux, especially 
the external application launcher...Will test that tomorrow.
Pekr
12-Jul-2007
[1973x2]
Doc - does app need to be encapped to hide in Systray?
Doc - above could be sufficient ....
Dockimbel
12-Jul-2007
[1975x2]
To hide REBOL consoles, just start REBOL with -w option.
or encap Cheyenne ;-)
Pekr
12-Jul-2007
[1977x5]
Doc - maybe we can fix that black dos window? I do remember some 
fix which hacked rebol exe, but dunno what it was related to ....
Doc - from config - is php supposed to be in ..\php dir?
Can I have more extern apps? E.g. more php versions?
Firefox offers me download of test.php, instead of executing it? 
Maybe a mime-type incorrectly set?
it should not offer me to download the script, or it is security 
issue imo :-)
Dockimbel
12-Jul-2007
[1982x4]
Check if your php-cgi.exe process exists
PHP can be anywhere you want, just set the correct (relative or absolute) 
path in the 'command directive
You can have more than one php-cgi process, but the pooling support 
is not yet implemented. For PHP, to control the number of threads 
(Windows) or processes (UNIX), just set the PHP_FCGI_CHILDREN parameter 
to the number you want. If you don't know what this is about, just 
leave the default value (1). Even with that value, it can supports 
dozens of concurrent requests (thanks to the fastcgi multiplexing 
support).
Hacking REBOL exe : that's prohibited by the REBOL license. ;-)
Terry
13-Jul-2007
[1986]
I recall fixing the DOS box by using a winapi libary call instead.. 
I'll see if I can dig it up.