#💽Programming Chat v2
1 messages · Page 5 of 1
👁️.
port is 25 right
yeah hold on
let me just clear the maiilboxes
just had the most successful test ever
@pastel tinsel ready
yes 25
225?
fixed
no clue if it is working lmao
gonna take it as no
filter?
oh wait idea
you can if you want, the test succeeded
it is hanging.
i dont see any output
yeah becase we are hanging
25.......
pretty please
@spare quartz is your TLS port 573?
set it to 4whatever
25, submissions is on 573
but you dont have a client, so dont use 573
I have a program that acts like a client
local client
03259236843549035i09435043
fineee
what is the new port.
width by height, is it okay if i use the 40000s series port
so astro doesnt die
im gonna switch to 43674 now
there
HEHEHEHAW
@full berry REady .
to who?
test
do I have to setup postfix
im deleting this
WHAT
ccc c cccode yy yyour o
what ru guys doinggg
your mom
nuh
TELNETING!!!!
spamming my testbed server
and fixing astros internet
SHUR UP

no way its that one notation for math
OKOK ill stop
bleh dot com
drone/uav
YOU GOTTA BE KIDDING ME
i asked someone in dm the same question and they said the same thing
LOL
I wonder if Ican multi thread this
server rn has 25 threads
oo la la
i can up it to 2000 if you get silly
wtf
WHY IS IT ALL HORRIBLE SONGS
🤨
are these individual emails
yes
LOL
That's it??
i sent it by telnet not a custom program
oh god
@spare quartz are you ready.
yes
theres only one thread in use at the moment
also what was the output
@spare quartz do you by chance have any new files
what are you doing
you've made 4 exceptions
LO
elaborate
@spare quartz did you just get a new connection
someone does not know how to handle their sockets
latest:
it just killed itself
bro i connected and my discord crashed
yeah pretty sure
show your code
intentional
what
you sent a MAIL FROM without completing your last MAIL FROM
can you clear it
LOL
i just restarted the server to patch up a bug in BDAT (command none of you are using)
womp
\r is carriage return
so think about a typewriter
you have the thing going across right
the carriage return resets that
oh
and the newline makes it create a new line
are you the connection that aimlessly just resets itself
no that's me
trying to negotiate TLS
negotiate?
are you sending STARTTLS
💀
yes
good
I am
I forgot the \r\n at first
now it upgrades and i need to see where I've forgotten \r\n\
?
its giving me the letter present thing
EHLO <name>
STARTTLS
EHLO <name>
make sure you reinitiate the conversation after
oh you have to HELO first?
i have a question
STARTTLS resets the connection state
make your server enforce that because I sent STARTTLS first and it took it just fine
why we are playing with 50 year old tech 😭
yeah i deferred that to after fixes
how do i connect
telnet javart.zip 25
ok 25
actually this is modern
the telnet part isnt
well most people here arent using telnet
oh? i think threads got a little dirty
lemme restart the server to see why
probably global state thing
😠
bruh
@timid quartz i think your constant STARTTLS created a bunch of trash tls connections that flooded the tasking group
oh well new bug to fix
LOL probably
don't forget to deinit
Me otw to flood your server with a bunch of half-open TLS connections
you can try again
grr
augh
i need to protect starttls!!
No u don’t
Let me trash your server with 50 half-open TLS connections
nono behind EHLO
My client just uses HELO
this is so mean
lol
maybe its my problem
the server is off cause im writing code nerd
that too
I didn’t bother writing a thing to parse the list of responses from a EHLO
bruh smh smh
Oh so you’re gonna force EHLO too huh
:3
I will continue to use HELO because I cba to deal with EHLO rn
I have COMBINATORICS to study
idk what that is.....
If I draw and quarter you, how many ways can I arrange your body parts such that no two limbs of the same type are adjacent
I guess while your server is down I’ll code in EHLO support
SHUR UP
it's not ready smh
it is ready
unless you changed ports
NO
lemme get the ol
asstrrrroooo
it's fine
do you want the old port or is ti okay to 25...............
you can switch to 25
im switching back to windows
the last 2 days ive been working on this crap and i have
so many things to work on
like its not even funny
@spare quartz done
whatd you do
check your mailbox
meower
you?
no I'm telling atp which box to check
oh
yep there it is
can you send one more email
RCPT TO:[email protected]
meow
i need to see if the file renamer works completely
check
nono
done @spare quartz
look at the top here
thats a file, so we renamed it to __INVALID__ to make it a valid mailbox
ic ic
don't run it in System32 obviously though
TODO one day
- make this run without a gui
- put this on a real server
invalid lol
I keep getting
bleh
it worked for a bit
@spare quartz you still working on it?
no
is it open?
yes
huh...
im gonna "shut it down" soon after this to add mandatory TLS
code
is the port still open
43674
use 25
when I use 25 it stalls
whats the address begin with
alr
theres a problem with your side then
I wonder if I can just
43... was a workaround for isp blocks
wait I wonder if I can just
tcpspammer has to be my favorite tool
why not use port 587
j
ok lets see how to d othis
you need to support everyone smh smh
i already blocked poor people 🔥🗣️
smhhhhhh
you probably spelled it wrong
lmao
die
Subject: youir cars extended warranty
idfk fjksdjaflksjdfkl meowm oemow meowm emow mewo moew meow
From: [email protected]
To: [email protected]
Subject: jct5ve
Message-ID: [email protected]
Content-Transfer-Encoding: 7bit
Date: Sun, 15 Sep 2024 19:38:26 +0000
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
c0nsqo
what even is the text
lmao what
LOL
forward deez
ok but 25 dont work!!
then all of our isps are ass
become a mail server and MAYBE ill listen to you 3
yours is worse
atp just
?
no
wdym no
thats against specification
?>?>?
587 is not 25
it isn't
its in the specifcation
who cares about the spec
what the flip
if you spam me again i will block your ip though
I am testing somnething
OH MY GOD
IT WORKS
(that took too long to do)
(christ)
I multi threaded it
because it has to async
or it explodes
your threading is messy
LOL
okay NOW im gonna block your ip
I SET IT TO 100 😭
LOL
not letting you do THAT again
what mail
lol
🤨
LOL
dawggg
tcpspammer... no longer malicious!!
(intentional DoS for the win)
the good news
after all of that
the server still responds instantly
9e5843tre8
honestly at the durations you're sending these i keep confusing you for gmail/other mail servers
considering they're all queue systems
LOL
yeah
I should uh
maybe remove the date
just do
BDAT <size of your message> LAST
<raw message>
binary data
yeah
oh I see
extension i have support for
ic ic
I sent it to meower
and your server said 250 received
OH
I
didn't change the header
@spare quartz yeah aera
From: "Aerasto" <[email protected]>
To: "Meower" <[email protected]>
Subject: HAHAH MEOW
So this is user input
...
yeah pretty cool ig
except that I didn't add the ability to have like
a new line between paragraphs
so this is all gonna be condensed in one block of text
lol haha
is this using BDAT too
no
ngl doing this in zig is
servers still gonna be running since im expecting a response from someone else though
a bit painful
and the lsp is kinda bad so a lot of the time I have to like
exit
zig build
"oh weird error"
LUCKY
LOL
the explicit alloc stuff is nice
but
idk it's just kinda painful too
especially with all the try
i have to coat everything in
declare
LastRead : Character;
begin
loop
Character'Read (Channel, LastRead);
-- ... CRLF checks
end loop;
end;
I can't exactly do "\r\n" as a delimiter though
a delimiter is expected to be ONE u8
so if I wanted to read from say the TLS connection
can't do that
oh boy
I will probably try to rewrite this in Rust
but
later
if I put more effort into that zig code I could have made it prettier too but ehhh
yeah
so [_] is auto size array
for the array literal
the [] denotes like...unknown/arbitrary size I believe
yayyy
good to know my language literacy isnt awful
same case in ada
we just have Bounded/Unbounded strings to back them up
(unlike zig though, this isnt possible in ada, you need an access type)
@pastel tinsel stopit
do it one more time and i will block your ip
lemme just write this in a way i understand
I feel like I could make this code a lot cleaner in Rust tbh
but I've had enough of this for now
[]T := array(bounds) of T;
type T_Array is array (Natural range <>) of T;
[*]T := access T_Array;
theres one funny part about ada
what if I sent the script to astro 
theres no 0 or 1 indexing
btw ada has syntax highlighting
subtype Natural is Integer range 0 .. Integer'Last;
type Array_Of_Things is array (23 .. 454) of Natural;
thats not valid ada code
still 
👁️.
interesting
I don't think any other language can really express this quite like that
but if I were to do this in rust, I'd just use a HashMap and use numbers in that range as keys
because if you .get() and the key isn't there you just get None
in ada that'd throw a constraint_error i believe (maybe program_error if the bounds aren't checked?)
you could do the same thing with Ada.Containers.Ordered_Maps(/Hashed_Maps) but, i dont see the use case there
(then again, if Index >= Array_Of_Things'Range'First then ... end if;)
bleh. theres still so much about ada i dont quite understand but i think im getting to that point
both
what
wsl
oh
so
ok
linux has better file paths
wait did that
does it clean inbox names
no it just doesnt accept your email
so is it not accepting them or
are you people still telnetting
@spare quartz damnit do you force close a connection if someone spams you
im actually adding that rn
- forcing tls
ill ALSO
be adding a restricted mailbox file
@pastel tinsel so you dont write 100s of chars long mailboxes
loloolol
ill also be adding SPF checks but
not now since i know you cant meet those
const { Worker, isMainThread, parentPort } = require('worker_threads');
const nodemailer = require('nodemailer');
const WORKERS = 200;
let transporter = nodemailer.createTransport({
host: 'javart.zip',
secure: false,
port: 43674,
});
function getRandomString(l) {
return (Math.random() + 1).toString(36).substring(l);
}
if (isMainThread) {
const workerThreads = [];
for (let i = 0; i < WORKERS; i++) {
workerThreads.push(new Worker(__dirname));
}
workerThreads.forEach((worker, index) => {
worker.postMessage({ task: index });
});
} else {
parentPort.on('message', message => {
console.log(`Worker ${process.pid}: Received task ${message.task}`);
performTask(message.task);
});
function performTask(task) {
const getData = async (resolve, reject, count) => {
let mailOptions = {
from: `${getRandomString(100)}@${getRandomString(100)}.net`,
to: `${getRandomString(100)}@javart.zip`,
subject: getRandomString(10),
text: getRandomString(10000)
};
await transporter.sendMail(mailOptions);
console.log(`Sent email from task: ${task}`);
count++;
getData(resolve, reject, count);
}
const runScript = async () => {
await new Promise((r, j) => getData(r, j, 0));
};
runScript();
}
}
@full berry
this can only go well
it's down rn
1984
making the error messages fail fast to reduce the indentss..
you did it wrong
@pastel tinsel devsite: https://medal.tv/games/roblox/clips/iGuZtNARC-TeTM69e/d1337qwJv7rE?invite=cr-MSxBUTMsMTcwNjA0MjE1LA
Watch JORDANLOL MICROPHONE and millions of other Roblox videos on Medal, the largest Game Clip Platform.
you have to yield for each post
so I just make them run on threads
seprate
and it works
there
?
wait so
was it off or smth
huh interesting
magic
huh
yes it opens the stream for a moment then closes them
thats why some ports on my nmap are open for no discernible reason
you should turn it on so I can spam you in a way that bypasses your hashset
you do realize you are the sole cause right
:3333333
yeah and i made a program that kicked your ass 💀
like a lot
listen I got my anti-spam up too
at least for repeated messages
AFTER LIKE AN HOUR
DIE
lmfaooo
ada protected objects on-top
Rust is special with top-level values
It really doesn't like mutable shared state especially at the top level
if I had been smart enough to do this last night I would have kicked your ass too
how big is the binary
FUCK
haha
i have mine on maximum optimizations (performance wise) 😭
lemme do release build
ada binaries are kinda fat ive noticed
this may or may not include the other function that receives connections from you
I'm not sure if rust strips that out since it's unused or not
it probably scrubs out dead code
release mode is 197kb 
STILL
mines probably faster..
oh.
granted that's also a debug build
zig debug binaries are FAT
lemme do .ReleaseSmall
435743864364
and that's including all that message-sending stuff + tls client
I would guess a proper rust implementation of an SMTP server would be on par with Ada
because that rust program is incredibly small
honestly it should be on the order of 100kb or less
binary
FAT 
OH
okay i think i might know why ada is so fat then
considering the language. is that
yeah kekw
literally never have gotten a regular segfault
its always something throwing an exception before it can
thisll show em
the System.Address when i Program_Error 😰
oh goddd
hm
i wonder if a Stream_Access needs a file to be in memory or not
what if i dont wanna starttls
will you actually block IPs lol
when i can yes
:(((((
but I don't wanna use your server responsibly
oh you know what would be funny
if your client fails enough times it juts runs tcpspammer on you
THAT will show them
google closes the connection if you fail too many times
itd probably catch on
there
servers ready
I swear
Rust is simultaneously easier and harder
Zig has better functions for reading
give me a second i have to actually Ban* a few ips
aww
just use a new ip
we already did that and ive said to stop 3 times now
- if i wanted to actually test it thats what tcpspammer is for
what
what is that
no lol
well then ill just email you some credentials to use when logging in

you dont need to do anything but just enter HELO differently
no
also when I write it in rust I may start using ehlo and bdat
SMTP-AUTH is primarily for submission servers only
im just making you identify with a certain domain and limits
oh pop3
no
submission refers to port 587 of SMTP
a restricted subset of the protocol meant for clients to send in email that will be relayed
its not supported rn
so are you closing 25 then?
25 is mandatory
ohhh wait I see
so like...
if I have [email protected]
and my client wants to send email to [email protected]
i will take that email and send it to yourmom.com yes
with port 25 i am not operating an open relay, so emails meant for other domains will not be saved/relayed
right ok
I might set up dovecot on my VPS then and connect it to aerasto.xyz so I can test submission functionality for you
good enough
?
nvm
. That is, on most systems, a very large number.
?
wow
hmm
@timid quartz are you able to setup an SPF record for your domain
just make sure your local computers ip in it
uh lemme c
studying combinatorics rn
so i can actually verify you

im still a bit mad over that spam earlier so
DMARC decides wether to use SPF or DKIM or both for verification of a domain, set by the domain
i consult that first
rn i have the server up waiting for a reply from a certain site
adacore
for the event thing right
thinking...
I love how you set up an entire ada email server for one email
instead of just like
making a proton account lol
it says it requires a "professional email" so like
@us.af.mil or something
i think the more ironic part is the fact that its like.
a hands on introduction to ada
and @javart.zip is professional?
... while i just wrote my own ada server
its a personal domain, so, yeah
gmail can be used by... anyone
fair
i wonder when the next ada spec will come out
83, 95, 12, 22
hmm
Ada 2036?
wait lemme do some math
okay so by the time "ada 2036" will come out
JDK 46 should exist
JDK 100 will come out in approximately
39 years
@spare quartz all that work to allow me to hopefully read until \r\n
forgot to clear the buf at the bottom of the loop
this is rust right
yeah
the code looks dangerous
i dont know how your reading semantics go but
in ada reading too far will cause the application to hang awaiting data
at least thats how im looking at it
read() just reads whatever is there
ok slightly edited code
don't mind the printlns
I need to check the WouldBlock thing with an actual TCP connection
but for stdin it worked
I also had to add the 'read thing to tell the break where to go lol
'read? attribute? ada reference?
think more like Kotlin labels
bleh never say that again
lol
gotos fine as long as you know what you're doing
i see it as more of a praticality thing
iirc its used once in my png library to skip decoding for a certain element
mainly cause the alternative would be a lot of branching
worked
HI
yay thats fun :3
finally after 10 years of using someone elses api as a reference for how my program should work
its the other way around
it doesn't no
but your api adheres to the specification
so I'm really following the spec and not your api
wwwwwweeelll
it doesnt follow the specification to a t
just the parts i could ctrl + f and look at someone elses implem-

cant you just slice from 1 to Length - 2


