#💽Programming Chat v2

1 messages · Page 49 of 1

spare quartz
#

yeah they blocked twitter :<

#

do they block google images by any chance

timid quartz
#

atp I hate to ask this but

#

what does tls look like in Ada…

spare quartz
#

yeah this works

timid quartz
#

Mk so it’s not too bad

#

I swear rust is frustrating me so bad

spare quartz
#

just pay attention to what you 'Write to the TLS stream in ada

#

as it will be written immediately and might cause problems for clients using a fixed buffer like in C

#

my server will accept any length input though

spare quartz
#

i mean dust

#

in 21 days i become 17... truly horrifying..

timid quartz
#

@spare quartz does your thing mandate client authentication or smth

timid quartz
#

why does rust make this so difficult

#

this would probably be easier in C

spare quartz
flint belfry
spare quartz
#

its okay i tested it

flint belfry
#

WHAT DID THEY DO TO THE CERTIFIED QSP ROLE 😭

flint belfry
spare quartz
#

i increased the tcp buffer size too and the speed went from 15,000 bytes/s

#

to 90,000 /s

spare quartz
flint belfry
#

smh

spare quartz
# flint belfry ur text is literally unreadable

ホニャー!MIXむずかちー!(一部音割れポッター)
多忙を極めており、今年のYoutube活動は恐らくお歌多めでお送りします。

呪文降臨~マジカル・フォース!原曲はSister MAYO様の歌声は天使なのでぜひみんな聞いてください…まままま!

カラオケ音源…
カラオ...

▶ Play video
#

gonan download this video on your printer fi youdont mind

flint belfry
flint belfry
spare quartz
#

no .

flint belfry
#

Yes.

spare quartz
#

i will make a kernel driver speifically so youo cant delete that file.

flint belfry
spare quartz
#

true

#

too bad idk how linux works

#

shouldve paid me for that!!

flint belfry
flint belfry
#

i will upload airborne.zip to the printer and you will experience true lag

spare quartz
#

wtf is an airborune

flint belfry
#

do you want to find out

spare quartz
#

yeah

flint belfry
#

ok

#

It's uploading.

spare quartz
#

you dropped my speed by exactly 400 bytes/s

#

🥳

flint belfry
#

in the ssh console

#

not ur vms

spare quartz
flint belfry
#

I SAID IN THE SAH XONSOLE

#

NOOT YOUR CM

#

SUMB

spare quartz
#

IM NOT USING THE SSH CONSOLE

flint belfry
#

DUMB

spare quartz
#

IDIOT

flint belfry
#

DUMB

#

DUMB

spare quartz
flint belfry
#

also the speech bubble is under ur message

spare quartz
flint belfry
spare quartz
#

Check again

flint belfry
#

still under

proud creek
#

k

spare quartz
#

@flint belfry OK!

#

really good news!

#

i believe ive fixed nmap

#

just need to handle socket termination

timid quartz
spare quartz
timid quartz
#

#

Literally built for network apps

spare quartz
#

go die

#

betetr name

timid quartz
#

urgh I wanna like rust but like

#

idk this is super annoying

spare quartz
timid quartz
#

I think I’m getting further along with rustls

spare quartz
#

(with less ports)

timid quartz
#

cause like I can reliably receive an http response now

#

just gotta parse and ensure it’s successful

spare quartz
timid quartz
#

uh not yet

#

I’m eating dinner

#

it’ll be a while

spare quartz
#

oki

#

for a second i thuoght you were talking tomy router

spare quartz
#

can't fix this easily (tied to broken pipe)

#

ill just hope it doesnt happen

#

hold this

rustic vine
#

finally

spare quartz
spare quartz
#

time to see what this is for

#

HOW AM I GONNA PULL MY REFLECTION TRICKS NOW

spare quartz
timid quartz
#

@spare quartz can you open your server rq

spare quartz
#

it is up.

spare quartz
#

[/98.62.60.78:60841;443 @ 01:00:47;983] Session ended (client disconnect).
[/98.62.60.78:60843;443 @ 01:02:32;782] Session ended (client disconnect).

#

stop disconencting

timid quartz
#

smh

spare quartz
#

trust EVERYTHING i tell you

timid quartz
#

:die:

spare quartz
#

im a compliant server 😁

timid quartz
spare quartz
#

yes

timid quartz
#

ok

#

I think I'm ready to actually start sending SSTP data

spare quartz
#

lot of hosts

timid quartz
#

how do you manage the bits in an sstp message

#

im curious

timid quartz
#

like

#

what's your equivalent to

struct message {
  unsigned char version;
  unsigned char reserved_and_control;
  unsigned short length;
  unsigned char data[];
};
spare quartz
#
sealed class SSTPMessage : SmartToString(), Writable {
    override fun calculateLength(): Int = 4

    override fun write(stream: OutputStream) {
        stream.write(0x10)
        stream.write(0)
        stream.write16(this.calculateLength())
    }

    override fun gist(): String = "SSTP [${calculateLength()}] "

    companion object {
        fun read(stream: InputStream): SSTPMessage {
            val version = stream.read()
            protocolViolation(version, 0x10, "Version was not 0x10, got ${hex(version)}")
            val control = stream.read() and 1 == 1
            val length = stream.read16()
            if (control) return SSTPControlMessage.read(stream)
            return SSTPDataMessage(stream.readNBytes(length - 4))
        }
    }
}
timid quartz
#

oh you just write it in directly

#

lo

#

and SSTPDataMessage

spare quartz
#
open class SSTPDataMessage(val data: ByteArray) : SSTPMessage() {
    override fun calculateLength(): Int = super.calculateLength() + this.data.size

    override fun write(stream: OutputStream) {
        super.write(stream)
        stream.write(this.data)
    }

    override fun gist(): String = super.gist() + "DATA [${data.size}]"
}
#

SSTPControlMessage uses the read->type->determine pattern everywhere else in this project

#

shown here

#

free router??

#

iom gonna go watch a super man movie

#

tlel me if you need anything frrom my server (itll still be up )

#

please tell me your ip as well so i know whats yours and whats not

timid quartz
#

@spare quartz ok so uh

#

tell me how badly I mess up this call connect request

spare quartz
timid quartz
#

just sent

spare quartz
#

[/128.61.78.4:61446;443 @ 03:10:34;331] Session ended (client disconnect).

#

you did not send a single message

timid quartz
#

wait hold on

#

oh

#

fun

#

ugh

spare quartz
#

?

#

off. (too many ips) let me know when available again

timid quartz
#

i had to fix creating a vector of bytes

spare quartz
timid quartz
#

ok what did you recv

spare quartz
#

automod.

timid quartz
#

oh so it was correct

#

I was worried I got the byte order wrong

#

I gotta devise a better way to send messages though

#
#[repr(u16)]
pub enum SstpMessageType {
    CallConnectRequest = 0x0001,
    CallConnectAck,
    CallConnected,
    CallConnectNack,
    CallAbort,
    CallDisconnect,
    CallDisconnectAck,
    EchoRequest,
    EchoResponse,
}

pub trait SstpData {
    fn to_u8_vec() -> Vec<u8>;
}

pub struct CallConnectRequestBody;

impl SstpData for CallConnectRequestBody {
    fn to_u8_vec() -> Vec<u8> {
        let mut vec: Vec<u8> = Vec::with_capacity(16);

        let msg_type = (SstpMessageType::CallConnectRequest as u16).to_be_bytes();

        let length_val = 0x000e_u16.to_be_bytes();
        let num_attrs = 0x0001_u16.to_be_bytes();
        let attr_length_val = 0x0006_u16.to_be_bytes();
        let protocol_id = 0x0001_u16.to_be_bytes();

        println!("{length_val:?} | {num_attrs:?}");

        vec.push(0x10);
        vec.push(0x0001);  // control bit
        vec.push(length_val[0]);
        vec.push(length_val[1]);
        vec.push(msg_type[0]);
        vec.push(msg_type[1]);
        vec.push(num_attrs[0]);
        vec.push(num_attrs[1]);
        vec.push(0x0);
        vec.push(0x01);  // encapsulated ID attr
        vec.push(attr_length_val[0]);
        vec.push(attr_length_val[1]);
        vec.push(protocol_id[0]);
        vec.push(protocol_id[1]);

        vec
    }
}
#

cause this is what I have rn 💀

spare quartz
#

object oriented design for the win

timid quartz
#

👎

timid quartz
spare quartz
timid quartz
#

mm

#

must be clever

#

come up with clever way to do messages

timid quartz
#

@spare quartz chatgpt ftw

#[derive(Copy, Clone)]
#[repr(u16)]
pub enum SstpMessageType {
    CallConnectRequest = 0x0001,
    CallConnectAck,
    CallConnected,
    CallConnectNack,
    CallAbort,
    CallDisconnect,
    CallDisconnectAck,
    EchoRequest,
    EchoResponse,
}

fn build_sstp_message(msg_type: SstpMessageType) -> Vec<u8> {
    let mut vec: Vec<u8> = Vec::with_capacity(32);

    vec.push(0x10); // version
    vec.push(0x01); // control bit
    vec.extend_from_slice(&(msg_type as u16).to_be_bytes());

    let (fields, extra_bytes) = match msg_type {
        SstpMessageType::CallConnectRequest => (
            vec![0x000e_u16, 0x0001, 0x0006, 0x0001],
            vec![],
        ),
        SstpMessageType::CallConnectAck => (
            vec![0x0030_u16, 0x0001],
            {
                let mut extra = vec![0x00, 0x04, 0x02, 0x08, 0x00, 0x00, 0x00];
                extra.push(0xFF); // hash protocol bitmask (placeholder)
                extra.extend(vec![0x00; 32]); // 256-bit nonce (placeholder)
                extra
            },
        ),
        _ => (vec![], vec![]),
    };

    for field in fields {
        vec.extend_from_slice(&field.to_be_bytes());
    }
    vec.extend_from_slice(&extra_bytes);

    vec
}
spare quartz
#

ughh watching a movie rn during a scary scene

timid quartz
#

turn on I wanna see if this code is true or rubbish

spare quartz
#

and my phone sudednly jumpscares me with an AMBER alert

timid quartz
#

gg

#

scarier than the movie

spare quartz
#

server is on

#

note for when you get far enough

#

you won't be able to send an NCP as authentication is on, let me know when you've added PAP and ill send you credentials (if you do even get that far)

#

this does not affect the process of SSTP or LCP/PPP

timid quartz
#

ok

#

I'm assuming that worked?

spare quartz
#
[/128.61.78.4:61625;443 @ 04:03:30;399] < SSTP [20] CONTROL SSTP_MSG_CALL_ABORT, # ATTRIB: [1]
                                                   ATTRIB [12] SSTP_ATTRIB_STATUS_INFO : ATTRIBUTE: SSTP_ATTRIB_NO_ERROR, STATUS: ATTRIB_STATUS_NO_ERROR, # ATRB DATA: 0
[/128.61.78.4:61625;443 @ 04:03:30;400] Session ended (server failure); java.util.NoSuchElementException: Key 14 is missing in the map.
                                                     at kotlin.collections.MapsKt__MapWithDefaultKt.getOrImplicitDefaultNullable(MapWithDefault.kt:24)
                                                     at kotlin.collections.MapsKt__MapsKt.getValue(Maps.kt:369)
                                                     at bread_experts_group.protocol.sstp.message.SSTPControlMessage$Companion.read(SSTPControlMessage.kt:51)
                                                     at bread_experts_group.protocol.sstp.message.SSTPMessage$Companion.read(SSTPMessage.kt:29)
                                                     at bread_experts_group.ThreadOperationKt.operation(ThreadOperation.kt:340)
                                                     at bread_experts_group.MainKt.main$lambda$3(Main.kt:138)
                                                     at java.base/java.lang.VirtualThread.run(VirtualThread.java:329)
                                                   
timid quartz
#

key 14 is missing in the map

spare quartz
#

key 14 is not a real command

#

you are sending your data incorrectly

timid quartz
#

ok the AI must not have put it in proper byte order lol

#

what about there

spare quartz
#

Key 14 is missing in the map.

timid quartz
#

ok the ai fucked it up lo

spare quartz
#

of note, it's sending an ABORT to you and im not seeing a receiving message

timid quartz
#

wait

spare quartz
#

so you're fumbling your initial request

timid quartz
#

ur mom is fumbling the request

spare quartz
#

fatass

timid quartz
#

what about that

spare quartz
#

gee thanks

#

Key 3584 is missing in the map.

timid quartz
#

lmfao

#

sigh, this is not a victory for chatgpt

rustic vine
#

murder scene

spare quartz
rustic vine
spare quartz
#

true..

timid quartz
#

real

rustic vine
spare quartz
#

what actually is it though

#

something to do with machine learning?

timid quartz
#

ok atp

#

check that

#

just making sure

rustic vine
spare quartz
#

oh my god automod kys

timid quartz
#

successful im guessing

spare quartz
timid quartz
#

ok

spare quartz
timid quartz
#

guess I'll have to conquer AI with human ingenuity

rustic vine
spare quartz
#

outlier is the only point that matters sorry lib

rustic vine
timid quartz
#

well like

#
impl SstpData for CallConnectRequestBody {
    fn to_u8_vec() -> Vec<u8> {
        let mut vec: Vec<u8> = Vec::with_capacity(16);

        let msg_type = (SstpMessageType::CallConnectRequest as u16).to_be_bytes();

        let length_val = 0x000e_u16.to_be_bytes();
        let num_attrs = 0x0001_u16.to_be_bytes();
        let attr_length_val = 0x0006_u16.to_be_bytes();
        let protocol_id = 0x0001_u16.to_be_bytes();

        vec.push(0x10);
        vec.push(0x0001);  // control bit
        vec.push(length_val[0]);
        vec.push(length_val[1]);
        vec.push(msg_type[0]);
        vec.push(msg_type[1]);
        vec.push(num_attrs[0]);
        vec.push(num_attrs[1]);
        vec.push(0x0);
        vec.push(0x01);  // encapsulated ID attr
        vec.push(attr_length_val[0]);
        vec.push(attr_length_val[1]);
        vec.push(protocol_id[0]);
        vec.push(protocol_id[1]);

        vec
    }
}
spare quartz
timid quartz
#

I tried to get it to make this less aids

#

but

#

uh

#

it didnt

rustic vine
#

thats not even bad bruh

#

why u hating

timid quartz
#

im hating cause all of the vec.pushes

rustic vine
#

I think those are fine

spare quartz
#

i just wanna make it clear the name for that impl is bad

#

you are not sending sstp data

rustic vine
spare quartz
#

you are sending a control packet. massively different

spare quartz
timid quartz
rustic vine
#

lol

spare quartz
rustic vine
#

that distortion isn't nice to play with when trying to extract features from a camera for CV

#

so we just undistort the image first instead

spare quartz
rustic vine
#

true

#

but to undistort

#

you have to figure out how its distorted

#

thats camera calibration

#

you wave a board with features on it around and take a bunch of pictures

#

and then you use the features on the board to figure out how your lens distorts the image

spare quartz
#

ohhh

#

cv is so cool... i wish i could understand it

#

(and use it )

spare quartz
#

how do i express this in rust terms

spare quartz
#

just split that function into "globally" accessible sections like

        vec.push(0x10);
        vec.push(0x0001);  // control bit
        vec.push(length_val[0]);
        vec.push(length_val[1]);

and call each sequentially depending on the type of impl

timid quartz
#

uh

spare quartz
#

is this how some of those qr code readers work too? when they can read even at a significant angle?

rustic vine
#

pretty much

#

qr codes can also have a lot of error correction

spare quartz
#

depends on the type of qr iirc

#

but i know they're quite resillient

rustic vine
#

but generally take video feed, undistort, run detection

#

im using it to detect visual fiducials

spare quartz
timid quartz
#

check log rq pls

spare quartz
#

stby just opened scpsl

timid quartz
#

ok phew

#

ok this gives me an idea for making this code better

spare quartz
#

oh yeah forewarning again

#

wait.. who's gonna be sending that packet...

timid quartz
#

me when I send the ignore hl auth thing

spare quartz
#

not that

#

i think im gonna be sending the SSTP Connected packet so dw about that nvm

timid quartz
spare quartz
#

no no no

timid quartz
#

dispatching*

spare quartz
#

a dynamic/dispatching (same thing) call requires you have object oriented design

#

im just saying like, split up that function and parameterize

rustic vine
# rustic vine im using it to detect visual fiducials

basically qr codes. the fancy thing is that you can do some nice math to figure out where the camera is placed in space relative to these markers, which means if you put this camera on a robot, you can figure out where the marker is in space or figure out where the robot is in space (depending on which location is your truth)

timid quartz
#

I'm not really sure if there's a way to check the impl so you can "call each sequentially"

spare quartz
#

nonono

#

like

#

(global) function sendSomeDataHere()
(global) function sendMoreDataHere()

impl A executes sendSomeDataHere()
impl B executes sendSomeDataHere AND sendMoreDataHere()

timid quartz
#

oh ic

rustic vine
#

or just keep it simple and make 20 push calls

#

idk man it seemed ok to me

spare quartz
timid quartz
#

yeah you'd do smth like

use whatever::send_some_data;
use whatever::send_more_data;

struct A;
impl A {
  fn bruh() {
    // ...
    send_some_data();
  }
}
rustic vine
#

🤷‍♂️ maybe thats still ok

spare quartz
#

but its in the eye of the beholder i guess

#

welp just finished my soder

timid quartz
#

I kinda wanna get rid of all the structs though

spare quartz
#

thank god i have 2 liters AND 50 pounds of extra aluminum to go with it

rustic vine
#

send this to a machinst u know

spare quartz
rustic vine
#

passed code review

normal bison
timid quartz
#

my idea is to like

fn build_msg(msg_type: SstpMessageType) -> Vec<u8> {
  let raw = match msg_type {
    SstpMessageType => vec![ 0x000e, 0x0001, /* ... */ ],
    // ...
  };
  let fixed = raw.map(|b| b.to_be_bytes()).flatten();
  fixed
}
#

something like that

#

pending me not messing up the byte order

rustic vine
#

why last expression is return

#

do you like that

rustic vine
#

I hated that when I first saw it

spare quartz
#

but i assume it's a good idea

timid quartz
timid quartz
spare quartz
#

it goes one eye out ... the other??

#

i dunno i just cant parse what it means

rustic vine
#

cause no syntax highlighting on a keyword next to it

timid quartz
#

maybe more understandable

rustic vine
#

LOL

#

CLUTCH

spare quartz
rustic vine
#

thats pretty readable though tbf

spare quartz
#

but i assume again you have good intentions

rustic vine
#

I mean the rust

timid quartz
#

I mean there's no way to do dispatching or whatever in Rust

spare quartz
#

im not saying i cant read the rust code

#

its just the meaning behind the code is opaque to me

#

im not exactly sure what its trying to accomplish effectively

rustic vine
#

map is common |b| can be assumed to be lambda syntax, to_be_bytes is obvious, flatten is obvious Vec<u8> is obvious

#

o

#

yea idk why the fixed part is needed

timid quartz
#

switching on the enum yields the vector of items that composes everything past the version and control bit

spare quartz
#

how will you provide the parameters for each enum?

timid quartz
#

wdym the parameters

spare quartz
#

some of the SSTP contrrol commands will require you send an attribute with them for example

#

how will you know what that attribute will be filled with

timid quartz
#

I haven't gotten that far

spare quartz
#

fair enough

timid quartz
#

How does your code do it?

rustic vine
#

by setting a static variable in a class

#

an array of Object

spare quartz
rustic vine
#

then reading it later

timid quartz
spare quartz
#

t tt tagged enums

#

👼

#

he's speaking OOP

rustic vine
#

oh hey we have those in luau

#

😁

#

sorry guys gotta keep it on topic ever so often

spare quartz
#

mmgmhgh huner

#

i need piz

#

az

timid quartz
#

ugh this is why coding sucks

spare quartz
#

no..

timid quartz
#

im not really sure how I'd do this in rust

lyric mesa
#

is atp trying to hack the automod again...

spare quartz
#

OH CMON

#

THAT WORD SPECIFICALLY

lyric mesa
#

the header tag 😭

timid quartz
#

ughhhh having a struct/class for every message type is cringe

spare quartz
#

yknow

#

in Ada...

timid quartz
#

what

#

what about Ada

spare quartz
#

variant records

#

thats all

timid quartz
#

mmm

#

that is nice

#

but then you have to waste time on a lang that’s literally unsellable as a job skill

spare quartz
#

:<

timid quartz
#

plus have the world’s worst community

#

3 old guys, one of which has been offline for 3 months and might be dead

spare quartz
timid quartz
#

I think a tagged enum is the play here

#

or well

#

Ig it’s just adding fields onto the enum

#

note for tmrw

  • add fields to enums that have attributes (for later)
  • have common struct for common info across messages
spare quartz
#

実はこれ手の空いたプログラマーのぽ氏さんが勝手に作ったんですよ…w 私もずっと温めているエイプリルフールネタがあるんですけど開発に集中してるので公開できず…でもまさか記事に乗せてもらえるとは思わなかったw 来年のエイプリルフールに乞うご期待!新キャラ登場かも?

#

time to work on CHAP

#

`note so i dont forget

#

-user=<name>:<passphrase>,<list of allowed authentication methods separated by ,>

#

--help & --help <parameter>

spare quartz
#

of interest ... EAP, BSD, DEFLATE << this requires some research, MPPE, MTU.

flint belfry
#

also what was the issue

flint belfry
#

whats the command you used

#

nvm figured ti out

flint belfry
#

ping is also broken now

#

yeah nmap still dosent work for me

#

and it crashes it sometimes

flint belfry
#

ok i found it

#

PISTON IN THE FUCKING BATHROOM

wheat hornet
spare quartz
flint belfry
#

oh

spare quartz
spare quartz
flint belfry
flint belfry
#

sometimes pings just fail

spare quartz
#

I need commands

flint belfry
flint belfry
spare quartz
#

Both nmap and ping

flint belfry
#

nmap -sn 10.98.249.0/24 -e ppp0

spare quartz
#

That’s strange cause that worked fine for me

flint belfry
#

well it returns 0 hosts up when it finishes

#

and when i try to run ping after that it never works

#

the server console also gets spammed with requests even after nmap is done

spare quartz
#

Again strange because it returned fine for me

#

Try it multiple times

flint belfry
#

already di but ok

spare quartz
#

?

flint belfry
#

wdym ?

spare quartz
#

What did you already do?

flint belfry
#

i tried running nmap multiple times

spare quartz
#

No

#

On different connections

#

Not nmap multiple times on the same connection

flint belfry
#

annnd its not connecting so someone probably shut the printer off

#

god damnit

#

ill do it later

spare quartz
timid quartz
spare quartz
spare quartz
#

the intrusive thoughts are coming back

#

(jvm os)

rustic vine
#
poll_question_text

victor_answer_votes

3

total_votes

3

victor_answer_id

1

victor_answer_text

spare quartz
#

this poll sucked

timid quartz
#

and then the client sends CallConnected with the compound mac

#

im looking at the crypto binding thing rn

#

and trying to figure out how the compound mac is calculated

#

oh wait I think I found it

#

so much hashing...

#

holy state machine

spare quartz
#

the 1st other, ABORT, is basically just tied to you closing the socket

#

the 2nd other, is a two way handshake for DISCONNECT

spare quartz
#

the crypto binding is only to prevent MITM (which isn't absolutely required right now)

timid quartz
spare quartz
#

yes

#

in the future it most likely will but whatever values you give right now dont matter

timid quartz
#

ok cool

#

but it WILL care about the certificate hash and the nonce right

spare quartz
#

no

#

the only parts that matter right now in the connection are:

  • create a good TLS connection
  • pass the Authentication state in PPP
timid quartz
#

oh gg

spare quartz
#

also LCP but thats a given

timid quartz
#

ok well the certificate hash and nonce aren’t hard

#

the compound mac thing is a bit confusing

spare quartz
#

actually

#

i dunno how you'll handle the PPP part of the connection

#

do you have easy bindings to pppd

#

or the windows tunnel variant

timid quartz
#

uhm…

#

idk…

timid quartz
#

there is this

spare quartz
#

you'll need kernel level stuff if you wanna use that iirc

#

or you'll need to create a facade between tcp/udp/icmp as i do

timid quartz
#

death

#

quite complicated

#

could just make my own impl

spare quartz
#

gl with that (not in a condescending way)

#

just a very complex and tedious task as you know

timid quartz
#

yeah I imagine it wasn't easy

spare quartz
#

but since i assume you're writing it in rust at least you'll have something you can reuse if you ever make a rust os...

timid quartz
#

theres also libp2p

#

but might not be quite what im looking for

spare quartz
#

gfidfngnjdfjgdf

#

dammit i really wanna make a jvm os now..

#

i dunno how i'd manage good memory allocation though since the only method i know is watermark (as its naive and trivial)

timid quartz
#

watermark

#

?

spare quartz
#

allocating memory from a pointer upwards and never reclaiming it

timid quartz
#

just uh...mark and sweep idk

#

freelist

spare quartz
#

tghat sounds hard ................

timid quartz
#

nah..

spare quartz
#

KYS!!!!!

pallid loom
spare quartz
#

but that isnt me :So b:

timid quartz
#

bayachud lmao

spare quartz
#

when one of the best artists you know is Polish

timid quartz
#

but atp

#

once I get the call connect ack, I start ppp auth right

spare quartz
#

no

#

you begin LCP

timid quartz
#

link control protocol

#

also defined in ppp rfc

spare quartz
#

you send over your requested parameters for the link, i accept them, i send my requested parameters for the link (including an authetnication method), you accept them, and begin authentication

#

afterwards you transmit NCPs and actual network communications happen

#

DO NOT!!!!! send me an authentication method!

#

although that is a thing clients can do, my server will not try to authenticate itself

timid quartz
#

bad server

#

so

  1. send call connect request
  2. recv call connect ack
  3. start lcp
  4. begin ppp authentication
  5. send call connected
  6. send data
spare quartz
#

yeah bascially

timid quartz
#

alr

#

clamplicated

spare quartz
#

make sure you only do the authentication methods the server gives you (if there aren't any, then you may proceed without authentication)

timid quartz
#

man this is a lot to have done

#

yknow I thought of this last night

#

kade primarily wants to view video from the printer over this connection right

spare quartz
#

probably

timid quartz
#

this thing supports ssh so why not just like either sftp/scp or set up a simpler application that sends video packets over the reverse ssh connection

spare quartz
#

i dunno

#

i could've easily made any other protocol work over the line without needing to emulate a stack

#

but those were the orders i was given

timid quartz
#

urghhh ppp connection seems like it's gonna be tedious

spare quartz
#

procedurally you don't need to be 100% compliant to the letter in each spec

#

you just need to give the other side what it wants until it works

#

(because of how they make these protocols though, they're not gonna give you a very good error mesasge, most likely just retransmit until they're exhausted)

#

now to find where he put the server

timid quartz
#

and this is all still sent over the initial tls tunnel

spare quartz
#

yes

timid quartz
#

crazy

spare quartz
#

i find it a bit odd since... an ssh tunnel is already a vpn, right?

timid quartz
#

wait wait so once I get the call connect ack, am I sending the lcp/ppp stuff within sstp data packets or directly over the tls tunnel?

spare quartz
#

so it's like running a vpn in a vpn

timid quartz
#

even though the call connect hasn't happened yet

spare quartz
#

doesnt matter

timid quartz
#

hrm

spare quartz
#

every piece of data sent throuh sstp must be in an sstp data packet

#

that isnt a control packet

#

think of it as becoming the layer 1

timid quartz
#

ic ic

#

SstpData { PppMessage { IpDatagram { TcpFrame { Application data }}}}

#

crazy

spare quartz
#

with compression options the overhead becomes like

#

maybe 15 bytes at the maximum

timid quartz
#

do u do compression....

flint belfry
spare quartz
#

somewhat

#

IPVJ compression is still something im researching (40b -> ~3-5b)

timid quartz
#

ipvj

#

never heard of it

flint belfry
#

too many tunnels/ssh things = more unstable connection = higher chance of the tunnel dropping = no longer able to access

spare quartz
flint belfry
#

the only ssh tunnel that's left is the one for atps server

spare quartz
#

only relevant to routers/other link devices

flint belfry
spare quartz
#

vpn server right now should actually work fine enough with video streams in all honesty

flint belfry
#

that's good

spare quartz
#

its just the massive connections nmapping over a subnet isn't a very easily fixable issue

flint belfry
#

ill see if i can connect with the printer software later

timid quartz
#

maybe 2 if you really need direct remote access

#

but 2 isn't that much

flint belfry
#

the software needs like

#

all ports available

spare quartz
#

oh yeah i shouldve asked this but uh

timid quartz
#

the software for what

flint belfry
#

if it doesn't then it'll say something's wrong with the printer etc etc

spare quartz
#

how many logical cores does the printer linux cpu have

timid quartz
#

printer control?

flint belfry
#

ideamaker

#

feel free to google

#

it's kinda a shitty prusa slicer

flint belfry
#

let me see

pallid loom
#

one thing i don't understand

#

so the issue is you're missing tun

#

have you tried to add it manually

flint belfry
#

there's theoretically

spare quartz
#

okay thank god

flint belfry
#

i say theoretically

#

a way to add it by recompiling the ke ok let me find what i said yesterday

pallid loom
#

what device is this even on in the first place

#

and what distro

flint belfry
#

6

pallid loom
flint belfry
flint belfry
#

no idea

#

it's some like

timid quartz
#

do uname -a

#

might tell you what distro

flint belfry
#

weird distro for freescale cpud

#

cpus

spare quartz
pallid loom
#

is this a creality printer

flint belfry
spare quartz
#

... i have root access to the printer, why ami asking you?

timid quartz
#

oh just generic Linux printer

#

gg

flint belfry
#

very weird

spare quartz
#

hold on

flint belfry
#

raise3d

#

aka

#

shitty bambu

spare quartz
#

okay neat

#

quad core means the server can support around 4 connections before weird stuff might happen

#

i dont think youll ever use 4 connections though

flint belfry
#

as to what they all were i don't remember

#

since it was back in October

spare quartz
#

4 connections thru the vpn that is

#

the "weird stuff" in question is just slowdowns/memory exhaustion

#

everything ran per thread (e.g. TCP/UDP socks) are virtually threaded so much more lightweight

pallid loom
#

hey atp could you just

#

purely wondering

#

modprobe tun

spare quartz
#

root@imx6qebcrb02a1:/tun/serve/sstp-1.0-SNAPSHOT/bin# modprobe tun
modprobe: FATAL: Module tun not found in directory /lib/modules/4.1.15-4411A1LIV8090
root@imx6qebcrb02a1:/tun/serve/sstp-1.0-SNAPSHOT/bin#

flint belfry
#

before asking atp

#

none worked

#

but your free to look further

flint belfry
#

i just doubt it's in the kernel

spare quartz
#

oh yeah by the way

#

where did you install java again

flint belfry
#

that's kernal complication which would fuck up everything right

#

beacuse once again i can't reinstall it if something goes wrong

#

ssh is the only connection to the console

flint belfry
#

ok i honestly don't remember so let me get my pc but it's somewhere in /usr

spare quartz
#

found it

flint belfry
#

ok whatever feel free to add that export command to bashrc or whatever

spare quartz
#

adding it somewhere in isolinux...

flint belfry
#

also the directory java is in rn isnt really a proper place but like

#

i didnt know where else to put it

#

so

#

feel free to move

spare quartz
spare quartz
#

currently making a thing

flint belfry
#

someone has turned the printer off

spare quartz
#

Connection to 127.0.0.1 closed by remote host.
Connection to 127.0.0.1 closed.

#

frown

flint belfry
#

yeah

#

uh

#

let me try a little thing

#

nope its not even responding

#

aka

#

someone turned the printer off and didnt turn it back on

#

well crap

wheat hornet
spare quartz
#

@timid quartz

#

made this tiny infographic if it'd be of any help

#

this part is where you'll be doing lcp/pap stuff

flint belfry
wheat hornet
timid quartz
#

interesting interesting

spare quartz
flint belfry
#

do you just speak japanese now or what

spare quartz
#

what... no..

#

i just got forawrded that from one of my conacts... and then decided to send it here cause of aera..

flint belfry
#

@spare quartz HOW MUCH SHIT DO YOU FOWARD HIM

#

😭

#

NVM

#

PLEASE DISREGARD

#

ALSO HI PERSON I WILL NOT NAME

spare quartz
#

huh

flint belfry
#

FORGET IT]

spare quartz
#

OH

#

YOU MEAN

#

😭

#

yeah im bros police body cam

#

📷 📷 📷

flint belfry
#

👁️

#

1984

#

i will take you both down

spare quartz
#

NO

timid quartz
spare quartz
#

he's not here

flint belfry
spare quartz
#

oh yeah btw my codev is older than me by a lot

timid quartz
#

oh hey he’s also old

#

are you sure your codev isn’t just my alt

spare quartz
#

are you gay and a protogen and work at a paper factory

timid quartz
#

could be a fake personality

spare quartz
#

you're schizo

#

go make holyc 3.0

timid quartz
#

u go make furryc 1.0

spare quartz
#

i hate c

timid quartz
#

too bad!

spare quartz
#

go make c but japanese or something... weeb..

proud creek
#

terry a davis

#

please save us

spare quartz
spare quartz
#

this does not compute

proud creek
#

its my old pfp

wheat hornet
spare quartz
proud creek
#

what 😭

#

before furry

spare quartz
#

i think ducks have fur

#

or do they have feathers... i dont know

#

the last time i saw a duck was in ohio

wheat hornet
#

nuh they have feathers

proud creek
#

do you not have ducks in texas what

wheat hornet
#

tz is a noob

#

noob

spare quartz
#

probably too hot

#

oh well, there actually is some at the lake nearby, but i only saw it when going to school 3 years ago

#

the same lake is used by coal/gas plant

#

... only gas now though...

timid quartz
#

You’re LITERALLY Sunny from Omori

spare quartz
#

#

i might have depression but i do not have the mental clarity to create a whole ass world in my head

timid quartz
#

ok you’re just lame Sunny then

spare quartz
#

rude.

timid quartz
#

you also ||dont have a dead sister||

spare quartz
#

true

flint belfry
spare quartz
#

but my sisters husband is a soldier, so ... something... hopefully not involving stairs

flint belfry
#

jesus christ

#

😭

spare quartz
#

OH CMON

#

EVERYONE KNOWS ALREADY..

timid quartz
#

SPOILERS.

flint belfry
#

smh i havent played omori yet

#

how dare you spoil the most known thing ever

proud creek
#

exactly i havent played either smh

spare quartz
#

GET BACK TO WORK

#

‼️

timid quartz
#

ur gonna get muted for Rule 143: No Omori Spoilers

spare quartz
flint belfry
#

PRINTER IS STILL OFF

spare quartz
#

WE GOT AMBUSHED AND LIVED

flint belfry
#

IM GOING TO START SCREAMING SWEARS.............

spare quartz
#

LONG LIVE MTF

#

why is this tagged bayachao

spare quartz
#

LOL

#

WHYARETHERE3COMPUTERs

timid quartz
spare quartz
flint belfry
#

atp what version does the printer have of the server and is it stable

#

when i turn the printer back on tomm i wanna test the software

#

and see if it can connect to it

spare quartz
#

version idk and probably

#

dont use nmap on it just use normal computer stuff

flint belfry
#

and im also going to need to kill the fucker who turned off the printer

flint belfry
#

if i really wanted an nmap scan i already have one i did from a while ago with my laptop 💀 (not related to the server)

#

the nmap was more of a test of if it can take the load of hot connections n shit

spare quartz
#

like nmap kinda works fromt he improved tcp

flint belfry
#

im not going to actually be using it

wheat hornet
spare quartz
#

but it also has a 10% chance of expldoing

flint belfry
#

at least the ping scans

spare quartz
#

no

#

its super duper mega heavy on tcp

flint belfry
#

ive been doing ping scans not normal scans

flint belfry
spare quartz
#

why did that send here

timid quartz
spare quartz
timid quartz
#

LOL

spare quartz
#

april fools is fun

spare quartz
spare quartz
#

left my SSTP session running for 8 hours

#

oopsies

flint belfry
spare quartz
#

my computer

flint belfry
#

yayy no random session terminations

#

at least in that time period

spare quartz
#

-ip=0.0.0.0 -port=443 -pap_username=testuser -pap_passphrase=passwordmeow -verbosity=4000 -keystore=keystore.p12 -keystore_passphrase=[the password i use for everything and would be fucked if anyone found out]

flint belfry
spare quartz
#

more like you'd just be looking at my local network

#

i dont have ssh on my comtpuer ,

#

oh ,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, @flint belfry do you want to pay me more money for your own ssh server 🥺

#

🥺🥺🥺🥺🥺

flint belfry
#

i

#

wdym

spare quartz
#

i dont know im bored and teired :<

flint belfry
#

I have like 5 vps's 😭

spare quartz
#

okay but

#

was it written by a cat ..

#

?

flint belfry
#

me giving you a vps in the past kinda thing or a no tty terminal??

spare quartz
#

i mean me write you a ssh server executable thing

#

joknigly ebcause im bored and i just want ... something ... i dont think i can mentino here

#

anyways have contact ionfos of people

#

ugghguuh

#

i shoud just draw

#

protocol development is hard

flint belfry
spare quartz
#

noooooooo

flint belfry
#

WHY

spare quartz
#

there is a specific character i am in love with...

#

and its not kohaku..

#

i WOULD send them here cause it's always a treat to see them but then the haters will get me

#

maybe in the future thuogh../ when i can draw ewll..

chrome folio
#

dhfushdf

#

what does this even mean bro

#

its a random document i signed ignore it

timid quartz
#

well maybe not idk

#

i got stats to do

spare quartz
spare quartz
#

woohoo

#

no wire interfernce

spare quartz
proud creek
#

😭

spare quartz
#

it is ada..

#

its ad.a.......

lavish dove
spare quartz
#

designing a website

#

i have not seeriously written html in YEARS

lavish dove
#

Lol

timid quartz
# spare quartz

ok hear me out

<html>
  <body>
    <h1>Bread Experts Group</h1>
  </body>
</html>
#

perfect website

timid quartz
spare quartz
timid quartz
spare quartz
#

ewww

#

ewwww

timid quartz
#

better than urs

#

by a long shot

spare quartz
#

no

timid quartz
#

minimal html and css

spare quartz
#

counterpoint

#

your css is in a different file

#

this is less efficient than ours

timid quartz
#

counterpoint: mine is viewable on any browser because of its minimalism

#

urs not

spare quartz
timid quartz
#

nop

spare quartz
#

yes

#

literally almost nothing would look wrong on any browser

timid quartz
#

mmm

#

nah

#

mines more viewable

spare quartz
#

nope

timid quartz
#

mine is also dark theme

#

objectively superior to light theme

spare quartz
#

ours isnt light theme

#

its beige theme

#

get with the times

timid quartz
#

stupid

#

smh

spare quartz
#

no

#

its a beige theme

#

blind

timid quartz
#

this is why you dont let cats use the internet

spare quartz
#

our masterful, well made website

timid quartz
spare quartz
#

THEIR .rtf file

timid quartz
#

which is a hallmark of light theme

timid quartz
#

beautiful

#

masterpiece

#

simple and to the point

#

nothing fancy

spare quartz
#

nope

#

worst part is

#

all your text is to the left

#

very unreadable

timid quartz
#

mm that's a skill issue

spare quartz
#

programmer issue ^

timid quartz
#

bad browser thats unable to display a line of text right issue ^

spare quartz
#

your website is LITERALLY displayed that way

#

its not incorrectly formatted its just hard to read a long line of text 😭

timid quartz
#

ok skill issue

spare quartz
#

WOW

#

ableist!!! insulting a BLIND person

timid quartz
#

not my fault your eye muscles have atrophied from being fixated on a screen for the past 4 years

spare quartz
timid quartz
#

the answer is yes

spare quartz
#

your website is a juicero

#

oh right ih ave to start writing a reverse proxy now

timid quartz
#

for kade?

spare quartz
#

no

#

for our own servevr

timid quartz
#

nginx

#

apache

spare quartz
#

bad

#

bad

timid quartz
#

reverse proxy is ez

#

ur basically just a nat

spare quartz
#

depends

#

im kinda making a two-way system of ipc here...

#

one uses sockets for non-JVM apps, one uses shared memory for JVM apps

#

latter is a lot faster and doesnt take up any socks but isnt as applicable as the former

timid quartz
#

gay and stupid

#

who even uses jvm apps

spare quartz
#

3 trillion devices run java

timid quartz
#

more like

#

used to

spare quartz
#

3 quadrillion devices run java

spare quartz
#

run everywhere..

timid quartz
#

drink once

#

vomit anywhere

spare quartz
#

rust once

#

degrade everywhere

timid quartz
#

build once

#

be outdated everywhere

#

(ada)

spare quartz
#

Wrong ...

timid quartz
#

correct!

spare quartz
#

woohoo

#

codev has his driven ow

timid quartz
#

vibe coding ftw

spare quartz
#

thinking bout adding RPC to our server

#

(to test production mc servers)

#

-# ↩ kopper
we could've had "FOSS" image editors. video editors. music production tools. they could've ran on mobile. on phones. tablets. on devices people ALREADY HAVE ON THEIR HANDS RIGHT NOW.

the ones they're actively using to CONSUME.

they could've used the SAME DEVICES to CREATE instead. without ads or getting scammed with overpriced garbage (compared to their desktop equivalents)

but what did you all do? you called it a waste of time. you sneered at it because google bad. apple bad. tiktok bad. scrolling bad. grrr get a thinkpad. just get a thinkpad.

spend the money you obviously have to acquire a computer thats obviously being sold where you are and store it in your home you obviously have. so Your Computing Can Be Ethical And Good. not like Bad Evil Tiktok Device. look at Good Linux Terminal Device instead.

timid quartz
#

get a thinkpad

#

get a thinkpad

spare quartz
#

nerd

#

nerd

#

anyways time to start writing this

timid quartz
spare quartz
#

no

timid quartz
#

yes

spare quartz
#

write it in rust

timid quartz
#

a reverse proxy in rust probably isnt that hard

#

but ive not even done the sstp thign

spare quartz
#

exactly

#

development speed of a snail

timid quartz
#

only because I have 5 billion other things to do

#

that are graded

spare quartz
#

all coded in rust

timid quartz
#

nope

#

compilers project is java and os project is c

spare quartz
#

COMPILERS PROJECT IS BASED

#

kinda

#

i dont like jaav

timid quartz
#

not like you’d know anything about caring about grades tho

spare quartz
#

cause im just better at school

proud creek
#

you dont go to school bro

spare quartz
#

yeah

#

im that good

timid quartz
#

0 means “failing” atp

#

Not passing