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

Oldes
10-Jun-2007
[1574]
Doc.. I had older PHP so now I have php-cgi listening, but it returns: 
"No input file specified". I have full path in the root-dir, is there 
something else?
Graham
10-Jun-2007
[1575]
I guess it must be a RSP problem.
Oldes
10-Jun-2007
[1576]
it's running.. I hade cheyenne root different from root set in php.ini
Graham
10-Jun-2007
[1577]
it's a simple url-encode and then dehex with characters missing after 
the dehex
Dockimbel
10-Jun-2007
[1578]
Not sure what's causing that, if you test locally, it works : http://localhost/show.rsp?street1=123ABC street
Maarten
10-Jun-2007
[1579x2]
Notice that Doc is making *the* point for rebol. One (very talented) 
guy creating an Apache-class webserver in 100Kb
Now, more questions:
- how stable is Cheyenne (uptime)?

- how secure is Cheyenne (how vulnerable, how has it eben tested..)?
- what load can one instance handle?
Graham
10-Jun-2007
[1581x2]
<html>
<body>

<h1> Test of dehex </h1>

<%
		
		test: "11 22 33"
		print rejoin [ "Original string: " test <br/> ]
		test: url-encode test
		print rejoin [ "Url-encoded: " test <br/>]
		print rejoin [ "Dehex: " dehex test <br/> ]
		
	
%>

</body>
</html>
produces this ...

Original string: 11 22 33
Url-encoded: 11 22 33
Dehex: 22 3
Maarten
10-Jun-2007
[1583]
OS, Rebol version, ...
Graham
10-Jun-2007
[1584]
win32
Maarten
10-Jun-2007
[1585x2]
What does this do in the console with and without Uniserve loaded? 
And the with Cheyenne loaded?
*then with...
Graham
10-Jun-2007
[1587x7]
>> rebol/version
== 2.6.2.3.1
dehex works fine in the console
let me kill cheyennne now
ahh... doesn't work after I kill Cheyenne
and use the same console
so, some type of rebol corruption is occuring
can anyone else confirm this??
Maarten
10-Jun-2007
[1594x2]
Let me try. What do you do?
>> test-string: "11 22 33"
== "11 22 33"
>> dehex test-string
== "11 22 33"
>> do %cheyenne.r
Script: "Cheyenne Web Server" (9-Jun-2007)
Script: "Untitled" (none)
[uniserve] Async Protocol FastCGI loaded
[uniserve] Starting task-master...
[uniserve] Starting HTTPd...
(escape)
>> dehex test-string
== "11 22 33"
Graham
10-Jun-2007
[1596x2]
I don't know
maybe I mistyped it .. but the rsp version doesn't work
Maarten
10-Jun-2007
[1598]
Then that's the problem :-)
Graham
10-Jun-2007
[1599x2]
https://www.compkarori.co.nz/test.rsp
which is just the page above
Maarten
10-Jun-2007
[1601x2]
Yep, I see it too
Paris, we've found a bug!
Graham
10-Jun-2007
[1603]
She's in Jail
Maarten
10-Jun-2007
[1604]
Where is url-encode defined?
Oldes
10-Jun-2007
[1605x3]
libs/html.r
and it looks strange... I'm not sure if it's save to use just to 
file!
safe
Graham
10-Jun-2007
[1608x3]
ahh.. that is the problem
I replaced url-encode with my own function, and it works fine now.
sweet
Maarten
10-Jun-2007
[1611x2]
Not sure. Change this inthe RSP and see what happens: print rejoin 
[ "Dehex: " dehex head test <br/> ]
Graham: submit your own function here so Doc can include that in 
the next release (and we all to in the meantime :-)
Graham
10-Jun-2007
[1613x2]
this is straight from the cookies-client.r
url-encode: func [
    {URL-encode a string}
    data "String to encode"
    /local new-data
][
    new-data: make string! ""
    normal-char: charset [
        #"A" - #"Z" #"a" - #"z"
        #"@" #"." #"*" #"-" #"_"
        #"0" - #"9"
    ]
    if not string? data [return new-data]
    forall data [
        append new-data either find normal-char first data [
            first data
        ][

            rejoin ["%" to-string skip tail (to-hex to-integer first data) -2]
        ]
    ]
    new-data
]
Dockimbel
10-Jun-2007
[1615]
Thanks Graham, I'll look at your code and fix my url-encode function 
asap.
Graham
10-Jun-2007
[1616]
I think tomc wrote the original version about 1999 or so !
Maarten
10-Jun-2007
[1617]
Proven technology ;-)
Oldes
10-Jun-2007
[1618]
I use:
url-encode: func [
    "URL-encode a string" 
    data "String to encode" 
    /local new-data
][
    new-data: make string! "" 
    normal-char: charset [
        #"A" - #"Z" #"a" - #"z" 
        #"@" #"." #"*" #"-" #"_" 
        #"0" - #"9"
    ] 
    if not any [string? data binary? data] [return data] 
    parse/all data [any[
    	  copy tmp some normal-char (insert tail new-data tmp)

     | copy tmp some #" " (insert/dup tail new-data #"+" length? tmp)
    	| copy tmp 1 skip (

      insert tail new-data rejoin ["%" as-string skip tail (to-hex to integer! 
      to char! tmp) -2]
    	)
	]]
    new-data
]
Maarten
10-Jun-2007
[1619]
I think Will's mod-rewrite does what I want. Perhaps I can test and 
document it :-)
Dockimbel
10-Jun-2007
[1620]
Marteen, about your questions, there's currently several web sites 
running with several months uptime. Cheyenne is quite resistant to 
all classic web attacks (tested with the Nikto package). About speed 
and performances, I've done a few test a year ago but a lot of things 
changed since, so I need to do some new benchmarking (anyone tried 
with Apache's ab tool ?)
Oldes
10-Jun-2007
[1621]
but it could be modified not to create new data but rather modify 
the existing value.
Maarten
10-Jun-2007
[1622]
Thanks. I suspect 100+ reqs/sec should be easily doable
Dockimbel
10-Jun-2007
[1623]
Oldes, thanks, I've made a minimal url-encode function (due to lack 
of time). I'll wrote a better one for the next release. Not sure 
what approach is faster, changing the argument series or building 
a new one...will test that.