Code Monkey home page Code Monkey logo

cd-gamedriver's Introduction

This is the CD gamedriver

It is a compiler and interpreter for the LPC language. It is developed to run the Genesis MUD running on https://www.genesismud.org/

Building

The driver should build on most modern linux distribution using glibc. It needs bison and libjson-c to compile.

On Debian

sudo apt-get install bison libjson-c-dev

Build

Review the setting of MUD_LIB and BINDIR in Makefile and then build using make

cd-gamedriver's People

Contributors

bithir avatar cotillion avatar garagoth avatar linor avatar tophyr avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

cd-gamedriver's Issues

write_socket_gmcp Denial of Service?

I've noticed that executing the efun write_socket_gmcp(str1, str2); leads to a server crash. While I'm still getting familiar with GMCP, just the execution of the following is enough to trrigger the DoS:

exec write_socket_gmcp("test", "test");

Results in an immediate crash. The syslog notes the following:

Bad stack after evaluation. Was 37, expected 18446744073708813182, frame ends at 38.
Instruction 263, num arg 0 
Current object was d/Domainname/username/exec_obj
Aborted (core dumped)
Exit status:  134

Endless loop while compiling LPC (driver startup, reading preload.data)

Hi,

I tried upgrading CD 04.06 to latest version from your git. Unfortunately driver is getting stuck in endless loop in prelang.y, set_label(), line 745 (for loop).
This does not happen at first file (on living files actually, while loading player) and once it happens lpc program memory gets corrupted I guess. Works on our current driver just fine.
Quick debugging session shows that link1 == next == addr all the time and for loop never ends.
Have you encountered this issue? Unfortunately git history starts after there were significant modifications to this file so I cannot track changes that easily (foreach added, try blocks added, some variables changed...)

If not, maybe you could provide some hints what are labels, what is difference between set_label, ins_label, and what is link and address inside label?

Regards,
Garagoth.

[Question] Adding ANSI color support

Hi,

This is not an issue, just a question. If there's a better place to ask, let me know and I'm happy to do so.

I'm looking to add support for ANSI colors to the driver, but I want to make sure I'm aware of all the places that need to be changed. So far, it looks like I need to update strlen, break_string, and write_socket. Is there any place I'm missing here?

write_socket_gmcp doesn't send anything?

Hi,

I'm looking to add GMCP to my game, but nothing seems to be sent. I'm using Mudlet 3.21.0 as my client, and I do see

Server sent telnet IAC WILL GMCP (201)
WE send telnet IAC DO GMCP (201)
GMCP enabled

when connecting, so it seems like it should work, but any attempt to send
seems to do nothing. I'm using it like write_socket_gmcp("Char.Vitals.hp", 6666);. Am I doing it wrong? This call is valid (i.e. compiles and executes), but nothing is showing up in wireshark. I see this same behavior whether I use exec or do the write from an add_action.

Am I missing a piece of the puzzle here? I'm running the driver on the most recent Ubuntu LTS.

@mindware mentioned this behavior as well, in #5

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.