Proof of concept mechanical port of ircnet/ircd to Rust as part of a bit about C being insecure for network services
0

Configure Feed

Select the types of activity you want to include in your feed.

chore: update example config

Signed-off-by: Xe Iaso <me@xeiaso.net>

+77 -12
+3 -5
.editorconfig
··· 1 1 # top-most EditorConfig file 2 2 root = true 3 3 4 - # Unix-style newlines with a newline ending every file 5 - [*] 4 + [*.yaml] 6 5 end_of_line = lf 7 6 insert_final_newline = true 8 - indent_style = tab 9 - tab_width = 4 10 - 7 + indent_style = space 8 + tab_width = 2 11 9 12 10
+15 -7
docs/k8s/example-network/cfg/leveva.kdl
··· 54 54 port 6667 55 55 } 56 56 57 + listen { 58 + port 6697 59 + tls #true 60 + tls-cert "/xe/tls/tls.crt" 61 + tls-key "/xe/tls/tls.key" 62 + server-only #false 63 + } 64 + 57 65 // Server-only (S2S) listener. Bound to `::` so the C ircd — which is IPv6-only 58 66 // (its sockets are AF_INET6) — can reach it; a `::` bind also accepts IPv4-mapped 59 67 // clients, so nothing else is lost. ··· 89 97 // send-password → what we PASS hub; equals hub's N-line password. 90 98 91 99 connect "nophica.vibecoding.svc" { 92 - host "nophica.vibecoding.svc.alrest.xeserv.us" 93 - send-password "hunter2" 94 - accept-password "hunter2" 95 - port 6067 96 - class "servers" 97 - autoconnect #true 98 - role "hub" "*" 100 + host "nophica.vibecoding.svc.alrest.xeserv.us" 101 + send-password "hunter2" 102 + accept-password "hunter2" 103 + port 6067 104 + class "servers" 105 + autoconnect #true 106 + role "hub" "*" 99 107 } 100 108 101 109 connect "menphina.vibecoding.svc" {
+8
docs/k8s/example-network/cfg/menphina.kdl
··· 54 54 port 6667 55 55 } 56 56 57 + listen { 58 + port 6697 59 + tls #true 60 + tls-cert "/xe/tls/tls.crt" 61 + tls-key "/xe/tls/tls.key" 62 + server-only #false 63 + } 64 + 57 65 // Server-only (S2S) listener. Bound to `::` so the C ircd — which is IPv6-only 58 66 // (its sockets are AF_INET6) — can reach it; a `::` bind also accepts IPv4-mapped 59 67 // clients, so nothing else is lost.
+18
docs/k8s/example-network/cfg/nophica.kdl
··· 54 54 port 6667 55 55 } 56 56 57 + listen { 58 + port 6697 59 + tls #true 60 + tls-cert "/xe/tls/tls.crt" 61 + tls-key "/xe/tls/tls.key" 62 + server-only #false 63 + } 64 + 57 65 // Server-only (S2S) listener. Bound to `::` so the C ircd — which is IPv6-only 58 66 // (its sockets are AF_INET6) — can reach it; a `::` bind also accepts IPv4-mapped 59 67 // clients, so nothing else is lost. ··· 97 105 autoconnect #true 98 106 role "hub" "*" 99 107 } 108 + 109 + connect "althyk.yolo-swag.com" { 110 + host "100.87.20.227" 111 + send-password (plain)"hunter2" 112 + accept-password (plain)"hunter2" 113 + port 6067 114 + class "servers" 115 + autoconnect #true 116 + role "hub" "*" 117 + }
+7
docs/k8s/example-network/leveva.yaml
··· 31 31 - name: cfg 32 32 mountPath: /cfg 33 33 readOnly: true 34 + - name: tls 35 + mountPath: "/xe/tls" 36 + readOnly: true 34 37 readinessProbe: 35 38 tcpSocket: { port: 6667 } 36 39 initialDelaySeconds: 2 ··· 39 42 - name: cfg 40 43 configMap: 41 44 name: network-cfg 45 + - name: tls 46 + secret: 47 + secretName: irc-tls-public 42 48 --- 43 49 apiVersion: v1 44 50 kind: Service ··· 56 62 app: leveva 57 63 ports: 58 64 - { name: irc, port: 6667, targetPort: irc } 65 + - { name: ircs, port: 6697, targetPort: ircs } 59 66 - { name: s2s, port: 6067, targetPort: s2s }
+7
docs/k8s/example-network/menphina.yaml
··· 32 32 - name: cfg 33 33 mountPath: /cfg 34 34 readOnly: true 35 + - name: tls 36 + mountPath: "/xe/tls" 37 + readOnly: true 35 38 volumes: 36 39 - name: cfg 37 40 configMap: 38 41 name: network-cfg 42 + - name: tls 43 + secret: 44 + secretName: irc-tls-public 39 45 --- 40 46 apiVersion: v1 41 47 kind: Service ··· 53 59 app: menphina 54 60 ports: 55 61 - { name: irc, port: 6667, targetPort: irc } 62 + - { name: ircs, port: 6697, targetPort: ircs } 56 63 - { name: s2s, port: 6067, targetPort: s2s }
+7
docs/k8s/example-network/nophica.yaml
··· 32 32 - name: cfg 33 33 mountPath: /cfg 34 34 readOnly: true 35 + - name: tls 36 + mountPath: "/xe/tls" 37 + readOnly: true 35 38 volumes: 36 39 - name: cfg 37 40 configMap: 38 41 name: network-cfg 42 + - name: tls 43 + secret: 44 + secretName: irc-tls-public 39 45 --- 40 46 apiVersion: v1 41 47 kind: Service ··· 53 59 app: nophica 54 60 ports: 55 61 - { name: irc, port: 6667, targetPort: irc } 62 + - { name: ircs, port: 6697, targetPort: ircs } 56 63 - { name: s2s, port: 6067, targetPort: s2s }
+12
docs/k8s/example-network/tls-cert.yaml
··· 17 17 name: "letsencrypt-prod" 18 18 kind: ClusterIssuer 19 19 group: cert-manager.io 20 + --- 21 + apiVersion: externaldns.k8s.io/v1alpha1 22 + kind: DNSEndpoint 23 + metadata: 24 + name: irc 25 + spec: 26 + endpoints: 27 + - dnsName: irc.xeserv.us 28 + recordTTL: 3600 29 + recordType: A 30 + targets: 31 + - 10.214.249.239