#💽Programming Chat v2
1 messages · Page 43 of 1
are you sure you're using the right assembler syntax
no x86asm sgdt gdrspot hlt gdtrspot: dq 0
eeeeeehhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh
xor eax, eax
sgdt [eax]
are you able to do something like this
(yes i know that'll overwrite the IVT but you're in protected mode I ASSUME so it shuoldnt matter)
I feel like a fuckin dumbass
there is no ivt
wait is there
oh yeah theres no ivt
if you're in real mode when this is run there should be an ivt put there
otherwise your bios couldn't work
I am making the bios
waah its still zero 😭
wait
I got the best idea
ill put it at zero
that sgonna fall and kill them all
I feel so fuckin dumb
cuz how does lgdt [1] not work
I dont know what that graph means but ill put it in bx si lol
if you see an instruction using modr/m as an operand to code for an address or register then this determines the byte(s) following the opcode
depending on your debugger it might suck at reading them in the right address/operand length so make sure to understand it at least a little
It's the qemu debugger
does qemu have a debugger
oh you mean thru gdb?
oh
You said debugger so I was thinking qemu debugger
idk
it doesnt show me the gdt register in bochs
VirtualBox and Bochs both freeze for me if i try reading off the RTC
oof
idk how to fix that
if you type in "replace cmos battery" in bochs it might work 🤣
woah
if i remove the lgdt instruction gdt = 0xfff
why is it setting it to zero instead of the fucking value I give it
you're sure lgdt is set at the right memory address
no
cause remember its an indirect reference
i still cant really read your assembler that well so i couldnt tell anyways 😭
well its set to the pointer in the gdt
try a mov from the pointer to something like eax
@timid quartz https://www.wired.com/story/undergraduate-upends-a-40-year-old-data-science-conjecture/
probably something youll like
when I read it with xp in qemu monitor it gives zero
but when I dump-guest-memory and check that its there
emm
do you have your bios code as an ELF
it probably wont work on our computer since we've got hooks n stuff but i wanna see how it runs
no its just a binary
can you pack it into an iso?
org 0xf000:0
bits 16
here:
inc edx
cli
cld
mov al,80h
out 70h,al
mov edi, 0x1000
mov eax, 0x2000 | 3
; levels 4-2
mov dword [edi], eax
add eax, 0x1000
mov dword [edi+0x1000], eax
add eax, 0x1000
mov dword [edi+0x2000], eax
add eax, 0x1000
; level 1
mov edi, 0x4000
mov eax, 0x1000 | 3
mov ecx, 512
nextentry:
mov dword [edi], eax
add edi, 8
add eax, 0x1000
loop nextentry
mov ecx, 0xC0000080 ; Set the C-register to 0xC0000080, which is the EFER MSR.
rdmsr ; Read from the model-specific register.
or eax, 1 << 8 ; Set the LM-bit which is the 9th bit (bit 8).
wrmsr ; Write to the model-specific register.
mov edi, 0x1000
mov cr3, edi
mov eax, cr0 ; Set the A-register to control register 0.
or eax, 1 << 31 | 1 << 0 ; Set the PG-bit, which is the 31nd bit, and the PM-bit, which is the 0th bit.
mov cr0, eax ; Set control register 0 to the A-register.
mov eax, dword GDT64.ptr
mov al, 0xFF
mov byte [0], al
hlt
jmp 8:dword code64
bits 64
code64:
hlt
times (0x1000)-($-$$) db 0
GDT64:
.null: dq 0
.code:
dq 0x00a09a0000000000 ; 64-bit code
.dat:
dq 0x0000920000000000 ; 64-bit data
.ptr:
dw ($ - GDT64) - 1
dq GDT64
.end:
db "GDTEND"
bits 16
times (65536-12)-($-$$) db 0
jmp 0xf000:0 ; it seems to load here?
db "hello"
times (65536)-($-$$) db 0```
okay lemme run this
its bios
its firmware
it doesnt even have 0xaa55 at the end 😭
blehhh
mov al, 0xFF
mov byte [0], al
``` this works
our CPU is weird so we can call an iso however we want
oh its the minecraft cpu
Interesting
I shouldve tried running it as a normal bios
okay the loader didnt like that
oof
im just gonna adjust your org to 0x500
it doesnt work when it runs as bios 😭
lgdt isnt in the file I sent you ;sob:
well yeah but again if i put it where OUR bios is ugly stuff will happen

I removed it trying to find out why the memory at gdt was zero
system control port
*The CMOS and RTC registers *
oh
welp i need to make those two devices give me a second
or i can just ignore it
org 0xf000:0
bits 16
here:
inc edx
cli
cld
mov al,80h
out 70h,al
mov edi, 0x1000
mov eax, 0x2000 | 3
; levels 4-2
mov dword [edi], eax
add eax, 0x1000
mov dword [edi+0x1000], eax
add eax, 0x1000
mov dword [edi+0x2000], eax
add eax, 0x1000
; level 1
mov edi, 0x4000
mov eax, 0x1000 | 3
mov ecx, 512
nextentry:
mov dword [edi], eax
add edi, 8
add eax, 0x1000
loop nextentry
mov ecx, 0xC0000080 ; Set the C-register to 0xC0000080, which is the EFER MSR.
rdmsr ; Read from the model-specific register.
or eax, 1 << 8 ; Set the LM-bit which is the 9th bit (bit 8).
wrmsr ; Write to the model-specific register.
mov edi, 0x1000
mov cr3, edi
mov eax, cr0 ; Set the A-register to control register 0.
or eax, 1 << 31 | 1 << 0 ; Set the PG-bit, which is the 31nd bit, and the PM-bit, which is the 0th bit.
mov cr0, eax ; Set control register 0 to the A-register.
o32 lgdt [dword GDT64.ptr]
hlt
jmp 8:dword code64
bits 64
code64:
hlt
GDT64:
.null: dq 0
.code:
dq 0x00a09a0000000000 ; 64-bit code
.dat:
dq 0x0000920000000000 ; 64-bit data
.ptr:
dw ($ - GDT64) - 1
dq GDT64
.end:
bits 16
times (65536-12)-($-$$) db 0
jmp 0xf000:0 ; it seems to load here?
db "hello"
times (65536)-($-$$) db 0```
lgdt then hlt
[04:25:18;680/WARN [Thread-15/Processor] 0x0000:000000000000055D 0xB9: mov ecx, 0xC0000080
[04:25:18;681/ERROR[Thread-15/Unnamed Logger, Error] java.lang.IllegalArgumentException: Missing two-byte opcode (0F) for 0x32 [0x0000000000000564]
ughhh i hve to make another instructino
heheehehehe
looks like 0x0f32 is "rdmsr"
we dont have model specific registers so ill just no-op it i guess
to turn on long mode
oh
our cpu is meant to destroy itself if it reads off a 64-bit GDT entry but
if it does do that then your code works
nice
(my code is not working in any emulator)
a few days ago I copied ovmf exactly and it still didnt work
but I noticed that ovmf and seabios had a bunch of tables at the start of their rom
so idk whats with that
ours has a lot better introspection so if it does fail i can try and send you the logs of what its reading
Reads the contents of a 64-bit model specific register (MSR) specified in the ECX register into registers EDX:EAX.
good enough
The MSRs and the ability to read them with the RDMSR instruction were introduced into the IA-32 Architecture with the Pentium processor. Execution of this instruction by an IA-32 processor earlier than the Pentium processor results in an invalid opcode exception #UD.
😭
[04:34:58;204/WARN [Thread-16/Processor] 0x0000:0000000000000584 0x01: lgdt 0x000005AC [0x00000594 / 0x0017]
[04:34:58;204/WARN [Thread-16/Processor] 0x0000:000000000000058A 0xF4: hlt
heres what my cpu said
(your org is 0x500 just to reiterate)
is the segment of 0x17 correct?
why is it reading like a segment
o32 lgdt [dword GDT64.ptr]
its not using any segments cs:di or atleast I dont think so 😭
nono
the lgdt instruction is reading the 2 values your pointer is pointing to (0x000005AC)
which are the offset/segment pair [0x00000594 / 0x0017]
oh god theres a segment in the pointer
no wonder its zero the pointer is pointing to the wrong memory 😭 thanks bro
hooray our fake cpu actually helped someone 🎉
holy shit??
i can get rid of all those ugly spring libraries??!?!
woah
holy shit
bro I made my own shitty spring and now I can replace it with good one
https://wiki.osdev.org/Global_Descriptor_Table#GDTR
this doesnt mention a segment at all 😭
I tried replacing the size with segment, and adding the segment to the linear address, and it still didnt work 😢
when I read the pointer to a 32 bit register its zero, to a 16 bit register its the correct number
@spare quartz I copied all of rom to 0 and it works now
I think
It thinks its jumping into 32 bit mode instead of 64 bit mode for some reason
im in long mode @spare quartz
my joy is indescribable
idk whats wrong with the gdt being up where the qemu motherboard loaded it
it was working because of org 0x500 I think
omfg
there are tables I was missing
apparently to get all your rom loaded correctly you haved to look at this weird table
thats somewhere.. below tthe first megabyte
OH SMBIOS
I only knew the first thing about it yet but im reading it
i barely know anything smm related
from what im reading its just a bunch of tables
taht were written by the motherboard
with ram, specific cpu info, etc
or I haved to write it cuz im making the firmware
😭
the Entry Point Structure is located somewhere in physical memory from address 0x000F0000 to 0x00FFFFF
oh god
I hope i get to setup smm
its so secretive that the manuals just say its impossible to touch
i just know x86 defines exactly one instruction for smm
and its just to return from it
yea
I DO
LETS GOO
idk how to set it up though
well it also means I haved to make acpi too 😭
organization
InternetProtocolControlProtocol...
(additionally InternetProtocolV6ControlProtocol)
i took a day break so oosp
only the best
funnily enough my isp doesn't give me an ipv6 address
no way 😭
InternetProtocolControlConfigurationRequest(
options=ListBuilder([VanJacobsonCompressedTCPIPOption(
compressedSlotID=Boolean(true),
maxSlotID=Int(15),
type=InternetProtocolOptionType(IP_COMPRESSION_PROTOCOL)
), IPAddressProtocolOption(
address=Inet4Address(/0.0.0.0),
type=InternetProtocolOptionType(IP_ADDRESS)
)]),
broadcastAddress=Int(255),
identifier=Int(1),
protocol=PPPProtocol(INTERNET_PROTOCOL_CONTROL_PROTOCOL),
type=ControlType(CONFIGURE_REQUEST),
unnumberedData=Int(3)
)
lmao
Two colliding blocks compute pi, here we dig into the physics to explain why
Instead of sponsored ad reads, these lessons are funded directly by viewers: https://3b1b.co/support
An equally valuable form of support is to simply share the videos.
The original paper by Gregory Galperin:
https://www.maths.tcd.ie/~lebed/Galperin. Playing pool ...
3b1b makes such good content
@spare quartz found your setup
hey i saw this
yeah 2b2t is a really good content creator
too expensive
oldest anarchy math video
THE OLDEST BRANCHES OF MATH IN MESOPOTAMIA
Ok but your language could be printed out on a paper full of Turkish
角は畝
what
でdeびbiるru
コkoネneクkuショshoんn
カタカナで「ん」を書きことが忘れたよ
thats how it is in the game 😭
go talk to bayachao not me
its even on the logo art
64 kibibytes you mean?
yeah KiB
KB is 64,000 flat
writing a wikipedia article rn
(cause the last edit was 2022...)
lol
gigachad
well thats annoying
every bios is only written in 64 kib
wait seabios is 256 kib wtf
oh that fits in bios expansions
my dumbass thought I could make my own memory map for my bios (all rom is automatically written to the system area) lmao
well the good thing is that it seems like every bit in the first megabyte is free
looks so pretty though
wait do you have sources
w
I remember seeing a edit message that one isnt allowed to put data without it being reworded source especially if they made it
well that's weird
The Triple P.
cause i made a giant edit to the page FPCON (force protection condition) using a DOD manual
and thats still up
(they didnt catch it)
no no theres been multiple edits
they still didnt catch it
(i wrote a lot)
and the sources i used are kinda weird, [1]:39:E4.4.2.2-10
Hi, I'm a programmer.
I just dos'd you
good luck surviving the next few days
HOLY SHIT THIS IS ANNOYING
.nextb:
inc eax
cmp dword [eax], dword "HELL"
jne .nextb
``` I couldnt find the firmware rom (after increasing its size) so I tried doing it in the 12 bytes that did get read and it went all the way up to the 12 bytes
it found the code to find the rom but not the fucking rom 😭
ったく。。。
system.out.println("Hello, world!");
ta kuuu
(good grief)
try ltu
how do I get the little tsu
Cause that’s full tsu
っ
there
my keybinds dont work sometimes rn too
っ
Anyone got any good video or tutorial recommendations on scripting shotguns?
my head hurts so much
lmk to fix IP address neogociation when i wake up
(also send a Code-Reject to CCP)
always so close to getting IP
also remind me to do this https://krdo.com/news/2025/03/17/high-ranking-army-official-charged-with-taking-c4-explosive-to-his-colorado-springs-home/
ALSO DO TERMINATE-REQUEST/ACK
You’re getting pings from the CCP?
Unironically yes
Stupid Hong Kong IPs trying to run all sorts of stuff on me
They never get pass the TLS
if sender_ip.is_chinese() {
sender_ip.reply("TIANENMEN SQUARE 天安门 天安門");
}
😭
There’s this one HK server in specific that just spitfires a ton of requests
all with different TLS parameters
Even if it does go through it doesn’t know the server crashes the thread if it’s not exactly SSTP_DUPLEX_POST
you should do it
theyll stop pinging you
I don’t have a way to do that very well
And sending a geo ip request sounds painful
okay
fully awake now
LCP TERM: No network protocols running
im not sure what ips to send,,,
your ips?
PPP has the IPCP (internet protcol control protocol)
which usually negociates to each peer what their ip should be
i just dunno how to send it correctly/what ips would be accepted
why does kvm want it before
want lgdt before setting efer
and tcg want it on far jump
erm...it should be their ip :3
thats not how vpns work doofus
ayways its jusut hanging rn
I mean how are you even gonna assign it an ip like what
probably have to make this thing a tiny router too
what do they have to do with anything
because vpns/routers don't rely on WAN..?
aera
how do you think multiple computers on the same network access the internet through one router?
you're making a virtual tunnel sure but underpinning that is the normal wan
what does the router do?
nat
correct
thats it
NAT does not need to care about wan assignments
i was half thinking of writing a DHCP server but that would be way too complex me thinks
but then does a vpn not just kinda do what like idk an http server would
sorta
if you're just creating a link to a single party then it would be a "proxy"
a VPN would be more like
establishing a virtual router to some other computer network (like an intranet)
im just confused why there needs to be ip negotiation when you could just say like "ok this ip requested a connection so they get these packets"
SSTP punches a hole using HTTP, then negociates IP thru PPP
wait wait unless you're like
ok wait I think I get it
cause you do make a virtual network
and the vpn is another middlebox?
well like nat is a middlebox
cause it sits in the middle
and does stuff to network packets
eeeehhh
that would be more PPP in this case
PPP is what's handling the actual VPN management stuff, then IP/IPCP goes over it and that's whats actually transmitting the data around to different computers
and then SSTP is an encapsulation over PPP
(because PPP doesn't prescribe any security itself)
at least how im understanding it right now
of note
SSTP gives TLS capability to PPP by essentially hijacking an https request and making it have a content-length of a ulong max value
(which is why it runs on port 443)
theres also PPTP which is like SSTP, but it doesn't give security
is this the correct way to look at it
like the VPNs have this virtual network 21.x.x.x set up between them
yeah
ok that makes sense
i just need to figure out why my client isnt continuing the NCP phase of IPCP
nerd type shit
pppd just keeps issuing the same packet
shut up schoolboy
fixed Peer not responding (was sending echos with the wrong Magic)
still looping though...
wait
nvm
i fixed it!
now i just gotta figure out how to test the server
okay
just gotta implement IP
@timid quartz if you can figure out what inet/dest translate to you get a cookie
i love being able to write names in ips
idk lmao
inet: "AERA"
dest: "GAY "
well there isnt exactly a concept of absolute source/dest but
inet is this computer yeah
makes sense
it thinks you're trying to send headers...
this automod remains very silly in my opinion
implementing authorization
oh neat i can set custom response messages
i should probably make a console switch configruator
well there’s only so much you can do with regex and it does prevent header spam…
hooray
something something register allocator optimization? I ain't smart enough for this one yet
what is this
is it posix compliant
it strictly enforces <dash><name><equ><value>[sp]
you're a boo.
pls be posix compliant
NO
you will take the value dependent spaceless argument and like it
you will take xml and like it
also p.s. those censored values use a securerandom to randomize their length 
protecting your door with concrete but leaving a window open
ultimately it looks weird
you would be cool if you were posix compliant
but you aren't
hmm
which colors..
pprobably these..
[/107.132.83.172:1966;443 @ 02:51:28] (PAP) > PasswordAuthenticationRequest(
password=String(passwordtest),
peerID=String(usertest),
broadcastAddress=Int(255),
identifier=Int(1),
protocol=PPPProtocol(PASSWORD_AUTHENTICATION_PROTOCOL),
type=PAPControlType(CONFIGURE_REQUEST),
unnumberedData=Int(3)
)
[/107.132.83.172:1966;443 @ 02:51:28] (PAP) < PasswordAuthenticationAcknowledge(
message=String(Authentication FAIL, usertest),
broadcastAddress=Int(255),
identifier=Int(0),
protocol=PPPProtocol(PASSWORD_AUTHENTICATION_PROTOCOL),
type=PAPControlType(CONFIGURE_NAK),
unnumberedData=Int(3)
)
[/107.132.83.172:1966;443 @ 02:51:28] kotlin.NotImplementedError: An operation is not implemented: LCP TERM: Failed to authenticate ourselves to peer
hooray it works
@flint belfry so uh, good progress so far, but IPv4 is gonna be hard to do since I don’t have clean raw sockets rn (which means at the worst I have to create a virtual router)
also there’s authentication now but it’s just user/pass rn
anything works it just can't be too complex since the thing this is going to run on dosent even have /dev/net/tun which most linux os's
also reminder that if you can't run this in tcp (which is preferred) udp still works since i can convert it to tcp
I thought this was a x86 asm reference page at first
this fundamentally requires TLS which has to run over tcp
And as far as I know the server side uses no interfaces aside from the one connected to internet
The client (on windows) will use your internet one, on Linux it’ll create a ppp<x> interface
Oh yeah, next time you have access to windows, could you test something for me
(my windows vpn doesn’t work cause of something to do with drivers)
Let me re wake up
ok am awake now
im gonna tweak this so you can set what interface it uses
wow windows has a lot of interfaces
ok now what
okay could you go into your vpn settings
and add a SSTP server
for javart.zip
and attempt to connect to it
like?
idk
people can just ping localnet.meemkade.com
lmfao
im trying to see if you're able to conenct to it
ok fine
anything auth needed
or nothing
it doesnt matter
i assume you got an error for something about an "oplock"
correct
fuck what
and i can't tell you how to fix it... do you have wsl?
then what do w edo
i have linux vms
too verbose
huh
seems too large for me to ask you to test that rn at this time
well is there absoultey anything we can do about oplock
i can run it in a linux vm but it would be nice to have windows
i dont know
whenever i tried to look up stuff about it, it just gave me driver docs
?
im about to support one of the fundamental parts of IP really soon (pinging)
after this its tcp/udp
a bit scared since i have to "emulate" a lot of this stuff since i dont have access to raw sockets
this code is deep
reminder that if you can make it so i can ping other devices on the network that would be great since there's another 3d printer which i can't install anything on (its old and doesn't run Linux) would be nice to interact with as well
yeah the server can access anything the computer its on can
k
in fact i switched to using its real local ip for the vpn (might cause issues on clients with a lot of ips though)
huh
does work though
just as if that vpn was your network
lemme see if i can "ping" a local device thru it
yup
was able to ping my router thru it
of course im not sending the ICMP reply packets yet so ping doesnt know, but
i think thats cool
oh im using a linux vpn client
i think the vpn (client) breaking had something to do with the transition from windows 10>11
but thats a guess
dont downgrade your computer for this
yueaj
ok ill try in a sec
let me know when to turn it on
ATP
I WAS TRYING TO CONNECT
AND WAS ABOUT TO SAY "its not even saying anything now"
you Buffoon
😭
yeah
umm if you have linux... available rn.. you could try the sstpc package
ok i have a ubuntu vm we can try this on
yeah
howdo i do this on ubuntu
if ubuntu dosent work i can make another vm
you know it might be this
if ubuntu doesnt work software is junk
just install that package and lemme get you the cmd line
sudo sstpc --log-level 400 --log-stderr javart.zip --cert-warn noauth noccp noipv6 novj ipcp-max-configure 1 ipcp-restart 1 defaultroute user testuser password passwordmeow
package not found via apt
sudo apt install sstp-client
ummmm
my server says your IPCP worked
idk what that means
try pinging something on interface ppp0
my ip :(
uh
if you run curl the server will crash (which is good i guess?)
how do i ping on an interface
ping -I <intf>
uppercase eye
ok
really you can ping anything on my local network which is scary, but
which
my router is 192.168.1.1 which i assume is urs too
so ic ant do that
its the one labelled destination on ppp0
lemme log on to my router to get some ips-
yeah
uhhh
err, cancel that
yeah thats cause im not sending any replies yet
try pinging that ip
(or try pinging 192.168.0.1 which is my router ip)
no output
intresting
finally try my pc
wtf 😭
ho
oops
i reversed the numbers
pung 192.168.0.169 instead of 96
wiat
did that fuckign crash it
yeah i set it to crash on anything not within the test parameters
oh... right... i deleted the keystore to try and fix the ssl thing.. give me a moment
god
nothing i do will make it accept the keystore
@flint belfry servers back up
try pinging my computer again
ok
yeah
neat
turned off server
time to work on replies..
and the only interface used was my wifi card 😁
(which looks much more painful internally than it does externally)
i wasn't* profiling it,,, uhh lemme try
the printer camera stream uses like
5 mbs at lowest
20 i think at max
it depends on settings on the pritner
is that network speed or memory
heres what the server uses when its pinging with one line open
(not terribly great honestly, but it would take a lot longer to write this safely)
thats going to be able to run on that right.....
reminder you have time
i still have connection to the printer but its hanging on by a thread
i just need whatver can run on the barebones os lmfao
wwweelll java is kinda known for running everywhere so
i'd expect you to be able to
i dunno about the memory constraints though
lemme check rq
holy shit the ssh connection to the printer is still alive
what a fucking miracle
you only have a gig to work with (979mb)
theoretically you could infinitely chain these vpn connections
sorry what
like
this VPN server assigns you an ip thru ppp0 right
so what if you connected thru ppp0 to start a new vpn connection
then you have ppp1 in ppp0
but why would tyou want to do that
are you going to have to hardcode every protocol 😭
yeah
well just the stuff running on IP
application stuff can be ignored
the woes of writing your own router
oh my god 😭
so if i were to like
use something like telnet (i wont be using it) itll combust??
what protocol does telnet use
User data is interspersed in-band with Telnet control information in an 8-bit byte oriented data connection over the Transmission Control Protocol (TCP).
tcp
id just need to code for TCP and itll work
well do keep in mind if i want to use your thing in the future beyond the printer and i have a rare use case i dont want it to implode 😭
well as far as i know theres very few things that use a protocol outside ICMP/TCP/UDP
uhhhhhhhh
huh
By default, the server listens on TCP port 3389[2] and UDP port 3389.
just code for TCP/UDP
oh
ok whatever then lmfao
also when i asked if you had to hardcode everything i thought you would need to make support for like literally everything
thank god its just udp and tcp
as far as i know IGMP, IPv6 encapsulation, OSPF, SCTP are all like, administrative stuff 99.99% of applications dont care about
yeah no just the stuff directly above IP
anything built on top of TCP/UDP just needs to get served to the right ip/port and the applications handle it
i could give less than a flying FUCK
about ipv6
oh yeah if i had to code ipv6 that would mean i would need to redo everything about ip
😁
not saying ive already done that though
10 protocols so far
need me a setup that looks like this
no i had a reason for bending the optiplex metal
no
i tried to at 3 am but my eyes just kept hurting
so i did a thing called drink a bit of soda and made them stop hurting
😭
hey look
this project is pretty cool
even if its way beyond my league (initially) for a furry steam game
well idk how else to get you to spend it 😭
i dont have an account
at least im not asking you like, $100,000/year to talk to an ai like whatever tf openai is doing
@silent https://wetdry.world/deck/@[email protected]/114188549736262165 @timid quartz
am i pinging you too much? soz
damn i cant retroactively make it silent
yaa @silent is actually just recognised by the client and sent as a message flag
flags integer Edit the flags of a message (only SUPPRESS_EMBEDS can currently be set/unset)
bad api design
ddosing rn
plus, i'm not sure if undoing push notifications is a concept...
thats for creating the message
this only applies to editing
ya
i wasn't sure what you were referencing 😭
ya i know now i meant... then-
just rewind your thought processes about 30 seconds
i tihnk thats how they work
painful
You could use C
no
am not learning c
i could use assembly, though
(expect about 2 months of development for that)
also you'd need to buy me bayachao merch
a lot of it
Wait I thought you were doing this in Ada
couldn't due to OpenSSL restrictions
the client i was using is highly sensitive to the data being sent
JDKs have a lot finer control over TLS/SSL ops
okay that should be ICMP pings done
now to test
oops, forgot to encapsulate

glad you’re using the better language
Ngl I do wanna see how rust would be since you mentioned “OpenSSL restrictions”
well to be more specific
it was more of i was sending the data too quickly, and the client, being written in C, exceeded its buffer and segfaulted
to fix it i'd just include another buffer on the ada side as the stage, but
writing ada is a lot more arduous than kotlin (which is why it'd take longer)
it'd use maybe 20x less memory though
Can you not add a delay in Ada?
i'd consider that too brash
yes, in fact its a keyword "delay"
but again, just use a buffer
Idk I feel like you could encounter the same issue in Kotlin too
Oh wait is your client in Kotlin
no
And your server in Ada
the client is some C code some guy wrote that goes over linux's pppd
the server is rn Kotlin
hm odd
how is a server buffer solving your problems then
and how come you couldn’t do this same thing in Ada
i've answered both of those already
the client is receiving data too quickly, overreading its buffer when sent something like a single byte, causing a segfault: sending all the data at once with a flush/buffer solves that
i could, but that would be arduous to do, since i'd need to make a new RST
A circular buffer solves all problems
WRONG!
CORRECT!
it's just an ArrayList of bytes 🧌
oh right
RST?
IPFrameEncapsulated isn't writing the actual frame
Root_Stream_Type
ah
handles lower level writing/reading w/ 'Write/'Read
Sparse sets are awesome I think people should just use them for everything
You can’t just write everything at once with that
weird
you’d think Ada would have something like that
you can*
it's just again weird to do
since your 'Writes wouldn't actually be written to the stream
they'd be intercepted into some resizable array/vector
and then you'd need to manually flush it
:3
Probably yes
But then that causes the client to overflow its buffer?
because again, i was sending the data too quickly
e.g. as it came
the solution, is again, a buffer.... ....
which would be arduous because i'd need to make a new RST (your "Write")
So you can’t just take an arbitrary array, convert it to an array of bytes, and send that over Ada’s normal RST
you can
or otherwise somehow manipulate your buffer to interface with Ada’s RST
So then…?
the problem is not "i cant send a buffer through an rst"
the problem is that the RST that is given to me via OpenSSL is sending it's data too quickly
and i'd need to make another RST on top of that
which intercepts data into a buffer
and is then manually flushed down the line
or you could make a buffer and write a flush method that takes a RST as an argument and call it whenever you need it flushed
that makes no sense
you cannot write arbitrary types to a buffer
the RST is what makes serilization possible
But you said that you could take a buffer and manipulate it into an array of bytes or some other RST-interface-able type
.
that was in response to this, where you're effectively saying "you can't send a buffer through an rst"
you can
that isn't the problem here
Oh I misread
the problem is the interception from 'Write to the RST which is redirected into a buffer
which isn't impossible mind you, it's just "i'd rather not do that"
and it'd be much easier to transcribe kotlin into ada later down the line if needs be
okay this is completely wrong
what is it doing??
idk it just sounds like you're overthinking your ada implementation
im not
writing to a buffer and then flushing the buffer is just the solution, but writing an intercepting rst to do that felt too painful at the time
like why wouldn't you be able to have a package Buffer that has some convenience methods for inserting into the buffer (not the stream) and that also has a procedure Flush (S : access Root_Stream_Type) that you call in your code that actually writes to the stream when you want it to?
because you can't insert into the buffer
and that just feels like a roundabout way to say what im doing
... you cannot 'Write into a buffer
Ok then don't 'Write into the buffer??
if you have like idfk
what's the right thing to use
and lose every single benefit of the serialization facility of ada?
a vector
I know
have your buffer be like a vector of strings or bytes or whatever common type you could use
and then have your Flush procedure call RST'Write with your data
you don't lose the serialization?
hold on
let me just draw this out
your process is on the left
the dark red indicates private operating in the RST
your process does not let me Write/Read arbitrary types to the buffer automatically, while thru the RST does
Oh I think I see now
for the write you could either write as a string or byte array
and for read ig there is no better solution than to have a bunch of methods for whatever types you wanna read
that thinly wrap the RST
you've just reinvented the 'Write/'Read procedures 😭
yooo
@flint belfry
finally got the checksums working
pretty c
hmm
i dont think ping likes my packets a lot
there
hah
it even works with external stuff
cool
buffer jumpscar
what are we thinking
extremely basic for now but whatever
nextjs + react + materialui for frontend
express + prisma (sqlite) for backend
passwords are hashed using argon2id, each session has its own auth cookie the server checks on every sensitive request
i like the look
can you try to ssh localnet.meemkade.com on port 3678
only do it once though since if you spam it your going to get banned
Thru the vpn?
yes
Also I just woke up
take your time
wh
ITS 9:5 actually ive woke up at worser times
i cant blame you
i dont know how to specify the interface with ssh
but this happens
how
idfk linux shit
also i wont be able to do that with that program i was talking about
everything will need to go through the vpn tunnel by the way
i cant just tell the software to go to this interface
so essentialy what wireguard does
i wont be able to connect anyways sincei h avent made tcp yet
whats ur ip
107.132.83.172
i doubt your on here but i see a couple of failed ips (lmfao get rekt)
oh
yeah if you havent even made tcp then you cant even say anhything to the server lol
well try again when you do make tcp
how can I ping ur thing
you need an sstp client
oh yeah forgot to say
i added this tool
now to...
fake tcp..
this is gonna be painful to type out
so you're doing tcp over ppp over sstp over tcp

cause I've never looked at the internals of a vpn before
idk I thought it was a proxy or some shit
well yeah but even with a proxy its still retransmitting the packets
the full line would be like, ...
doing tcp over ip over ppp over sstp over tcp over ip
(at least for me) WiFi -> IP -> TCP -> TLS -> SSTP -> PPP -> TCP
wifi/ip part uncertain cause idk what im using for datalink
you COULD include HTTPS after SSTP here but it only involves like, 100 bytes of the whole transaction
typical C dev
the way it was always intended
abandon everything else return to C
C is just basically readable x86
no
eys
C is x86 for people who can't be bothered to pick up a manual
dont you LITERALLY have the giant things that are ansi/misra c
?
sssh
vibe coder ^
no u
:X:
go use cursor
ITS NOT BEING PEDANTIC
and github copilot free
okay now i gottta add tcp options
*Options have up to three fields: Option-Kind (1 byte), Option-Length (1 byte), Option-Data (variable). *
u basically gotta reimplement all of tcp