Skip to content

enowars/enochecker_async

Repository files navigation

EnoChecker Async Build Status

This is the asynchronous python variant of the ENOWARS checkerlib.

Implementing an asynchronous checker

Consumers must extend the BaseChecker class:

class DemoChecker(BaseChecker):
    port = 8000

    def __init__(self):
        super(DemoChecker, self).__init__("Demo", 8080, 2, 0, 0) # 2 flags, 0 noises, 0 havocs

    async def putflag(self, logger: LoggerAdapter, task: CheckerTaskMessage, collection: MotorCollection) -> None:
        pass

    async def getflag(self, logger: LoggerAdapter, task: CheckerTaskMessage, collection: MotorCollection) -> None:
        pass

    async def putnoise(self, logger: LoggerAdapter, task: CheckerTaskMessage, collection: MotorCollection) -> None:
        pass

    async def getnoise(self, logger: LoggerAdapter, task: CheckerTaskMessage, collection: MotorCollection) -> None:
        pass

    async def havoc(self, logger: LoggerAdapter, task: CheckerTaskMessage, collection: MotorCollection) -> None:
        pass

For a full example, check out the WASP checker.

Testing your checker

enochecker_cli is a nice cli tool that you can use to send tasks to your checker.