World: r3wp
[Core] Discuss core issues
older newer | first last |
Graham 6-Mar-2005 [587] | http://www.compkarori.com/vanilla/display/IMAP |
Pekr 7-Mar-2005 [588x2] | is there reverse to dehex "Documents and settings", simply some function to provide it "Documents and settings" and having replaced spaces etc.? |
ah, to-url, sorry ... | |
Micha 8-Mar-2005 [590x3] | rebol [] secure [ net allow file allow ] |
no security check . | |
I ask about help ? | |
Graham 8-Mar-2005 [593x3] | Anyone got a function to reduce a ip-address to a tuple ? |
I mean, make something like 192.168.1.254 -> 192.168.1 .. dropping the last number | |
no matter. | |
BrianW 8-Mar-2005 [596] | Well I know how I'd do it in Perl or Ruby, but I'm not that far with my Rebol yet. |
Graham 8-Mar-2005 [597] | 192.168.1.254/1 -> 192 192.168.1.254/2 -> 1 |
BrianW 8-Mar-2005 [598] | Hey, that's cool. |
Graham 8-Mar-2005 [599] | I'm writing a greylisting implementation for my smtp server .. and I needed to drop the last digits of an ip address to form the triplet |
sqlab 8-Mar-2005 [600] | What about >> to-tuple reduce [first ip second ip third ip] == 192.168.1 |
JaimeVargas 8-Mar-2005 [601] | Graham do you want to compare the spammer ip address against a range? |
Anton 8-Mar-2005 [602] | Yes, because you could test (ip * 1.1.1.0) = (ip2 * 1.1.1.0) |
JaimeVargas 8-Mar-2005 [603x3] | ;If you do why not use comparison under mask? >> same-subnet?: func [src dst mask][(src and mask) = (dst and mask)] >> same-subnet? 10.10.10.0 10.10.10.5 255.255.255.0 == true >> same-subnet? 10.10.10.0 10.10.9.5 255.255.255.0 == false |
This version handles also cidr prefixes. | |
>> cidr-as-mask: func[prefix /local mask][ [ mask: make string! 34 [ repeat i 32 [insert tail mask either prefix >= i [1][0]] [ to-tuple load rejoin ["2#{" mask "}"] [ ] >> >> same-subnet?: func [src dst mask [tuple! integer!]][ [ if integer! = type? mask [mask: cidr-as-mask mask] [ (src and mask) = (dst and mask) [ ] >> same-subnet? 10.10.10.0 10.10.10.5 255.255.255.0 == true >> same-subnet? 10.10.10.0 10.10.10.5 24 == true >> same-subnet? 10.10.10.0 10.10.9.5 255.255.255.0 == false >> same-subnet? 10.10.10.0 10.10.9.5 24 == false | |
Graham 8-Mar-2005 [606x3] | I need to construct what is called a "triplet". The triplet in greylisting parlance is a unique set of three facts about an email. These are IP-address+smtp envelope from+smtp envelope to The idea is that you construct a database of triplets from smtp clients. If you have never seen such a triplet before, you send a smtp delay back to the client. Most well constructed MTA's honor the delay and try again. You set a block period .. from 10 seconds to 1 hour during which you do not accept any mail from that triplet. Spamming engines generally ignore this delay, and just give up. It's too expensive for them to log such delays and retry again. |
If you have seen mail from such a triplet before, you then allow that mail to go thru without any delays. In my testing, I found that my ISP sent me three consecutive emails to my smtp server using three different ip addresses all within the same subnet. So, this meant that all three emails were subjected to a delay. | |
So, I constructed the triplet without the last set of digits so that it will treat all email from the same subnet as orginating from the same address. | |
JaimeVargas 9-Mar-2005 [609] | Shouldn't parse and checksum be able to work directly on files? The only current option is to bring the files to memory either in chunks or completely, which can be very expensive in memory resources. |
Romano 9-Mar-2005 [610] | checksum more than parse, because with parse there are (not easy) workarounds, not with checksum |
JaimeVargas 9-Mar-2005 [611] | Romano. Why not parse, because of skip not working? |
Graham 9-Mar-2005 [612] | Isn't skip working now in the new alphas ? |
JaimeVargas 9-Mar-2005 [613] | I believe so. But I havent tested this. |
Romano 9-Mar-2005 [614] | useful for both, but checksum has not workaround while some workaround can be found for parse |
Vincent 9-Mar-2005 [615] | like inserting data at tail of parsed string? |
Graham 9-Mar-2005 [616x2] | I guess you have to access to the whole file in memory to calculate md5s ... |
need some other checksum that can be calculated by loading parts of a file at a time. | |
Romano 9-Mar-2005 [618] | Vincent: almost, it is not easy: you must 1) read a chunk of data, parse it 2) when parse stop remember the position where it stops 3) delete parsed data 4) read a ne chunk of the file 5) append it to the old data 6) restart parse from the right rule (this is the hardest part) |
JaimeVargas 9-Mar-2005 [619x2] | Why you think it will be difficult for parse to work natively on files? |
After all a file is just a binary! series | |
Romano 9-Mar-2005 [621] | No Jaimie, i wanted only say: "there are NOT workaround for checksum - there are workarounds for parse" |
JaimeVargas 9-Mar-2005 [622] | Ok. Then. Can we put feature requests in RAMBO? |
Vincent 9-Mar-2005 [623] | Romano: thanks, I will try it - I have a version of rebzip decompressing a file while it's downloaded, but the code isn't pretty (two nearly same funcs.) |
BrianW 9-Mar-2005 [624] | Is there a way to get the name, file, or line number of a function's caller? |
Tomc 9-Mar-2005 [625x2] | no |
the maillist archives will have some very good discussions on the subject | |
BrianW 9-Mar-2005 [627] | ok, thanks |
Graham 9-Mar-2005 [628] | How does one lookup MX records ? |
Tomc 9-Mar-2005 [629x2] | but it boils down to the fact that code is data, i.e. these function calling can emitted from functions which are constructed on the fly, so there is no home to phone to. |
http://www.webmaster-toolkit.com/mx-record-lookup.shtml | |
Graham 9-Mar-2005 [631] | So, there is no nslookup utility for rebol ? |
Tomc 9-Mar-2005 [632] | must be http://www.compkarori.com/soap/index.shtml |
Graham 9-Mar-2005 [633] | you lost me ... |
BrianW 9-Mar-2005 [634x2] | print read dns://www.coolnamehere.com/ or is that not what you were thinking of? |
hmm. | |
Tomc 9-Mar-2005 [636] | that is what I was looking for |
older newer | first last |