lstranger / foxeye Goto Github PK
View Code? Open in Web Editor NEWFoxEye - universal network agent
License: GNU General Public License v2.0
FoxEye - universal network agent
License: GNU General Public License v2.0
What is FoxEye? FoxEye is an IRC bot that is compatible (I meant:) with Eggdrop bot. Ones have alike commands and Tcl interface but FoxEye has it as module. But this isn't all about FoxEye because it has possibilities above and beyond ones of Eggdrop... Catched signals and actions: SIGABRT shutdowns the bot SIGBUS shutdowns the bot SIGFPE shutdowns the bot SIGHUP flushes files/connections SIGILL shutdowns the bot SIGINT restarts the bot SIGPOLL used by sockets API SIGPIPE ignored SIGQUIT shutdowns the bot SIGSEGV shutdowns the bot SIGSYS shutdowns the bot SIGTERM shutdowns the bot SIGUSR1 ignored SIGUSR2 ignored Return codes: 0 all went OK 1 command line error 2 out of memory 3 init error 4 cannot create console interface 5 cannot fork 6 bot already running 7 interface locking error 8 internal unrecoverable error The bot is multithreaded but created threads may run with limitations: 1) If thread have a bot interface then IFRequest() and IFSignal() are NOT DETACHED part of it, so thread cannot call these functions itself. 2) If thread want to call any API that using interface address or any data of bot interface structure, thread must call Set_Iface() or Find_Iface() before that and call Unset_Iface() after. Undocumented options. There is one option switch to foxeye executable: '-D'. If you add this to command line then it'll create new file 'foxeye.debug' where any debug messages will be stored in slightly modified format. This option does not require '-d' option. Meaningful only for developers. There also is some undocumended macro DBG(fmt,...) that writes debug only into this file (in difference with dprint() this one is async-safe, i.e. can be called any time and anywhere). Version control. Any version A.BCxxx must be compatible. It means if something was changed in the core headers then it must be subject for version change. Note: since the version 0.10 versions with release number equal to 0 (i.e. such as 0.10.0.1 and so on) are 'developer' versions and are not subject for this version control as protocol/arrays may be changed with any build number change so should be not used for making any release package. Why I may need iconv? Iconv is a library which can do conversion from one charset to another. You may need it if you have a number of different character sets in your botnet. Color codes and smile codes. Due to historical reasons text coloring codes scheme is one from mIRC. Smiles are GUI-only feature so there is no smile codes scheme in FoxEye. What is in the core? Core has the code which is common or used by many modules, so it's vital for the bot or can avoid duplicate the code: - init stuff (init.c) - telnet/dcc login manager with little chat-like subsystem (direct.c) - intermodule transfer/communication manager (dispatcher.c) - helpfiles manager (help.c) - bindings manager (init.c) - config and formats files support (init.c) - common functions (lib.c) - terminal console driver (see -c switch) (main.c) - modules manager (modules.c) - timers API (sheduler.c) - sockets API (socket.c) - listfile manager (list.c) - eventsfile manager (wtmp.c) - base character transcoding API (conversion.c) - connection chains API (connchain.c) What modules have to care about in interaction with "ui" module? As soon as module "ui" is loaded it have to get not only text that comes into logs but also it should be informed about each client status change, i.e. each service opening, each client connection, each client disconnection (such as joining or parting channels) and each changing of status. That should be done either by sending signal S_FLUSH from interface of service or client that got the change or by sending a message with name of client and appropriate flag (if that status change was for client on some service not for service itself) to module "ui". Which modules are available? Currently available modules are: logs - customisable saving and rotating of log files. autolog - automatic saving of private and public conversations. lua - support for scripts in Lua language. irc - common support of connection to IRC network. irc-channel - basic support for channels of IRC network. irc-ctcp - implementation of some IRC commands including few DCC. modes - implementation of commands +ban, -ban, and others tcl - support for scripts in Tcl language ircd - standard (RFC2813) IRC server ziplink - support for compressed connections ssl - support for SSL/TLS on every connection syslog - support for logging some messages to syslog ircd-rusnet - RusNet ircd IRC server extensions ircd-capab - CAPAB server protocol command Were planned to implement some other modules but they are either pending or unrequested. Feel free to write them or ask someone to implement: botnet - implementation of network of bots db - unified interface (bindtables) to database. dcc-new - chat subsystem access for any unregistered user eggdropnet - implementation of eggdrop's botnet protocol expirehosts - deletes hosts and users not seen for too long time forth - support for scripts in Forth language fserv - file downloading service getops - automatic getting privileges from other bots icq - client for ICQ network irc-protection - antiflood, antispam and other ircd-console - "consolecmd" command for IRC operators ircd-tkserv - "temporary kill" support for ircd jabber - client for Jabber network login - "login", "logoff", and "cron" scripts for each chat user md5 - support for md5 encryption news - service for storing news and notifying people about them notes - service for storing notes from people to other people perl - support for scripting in Perl language python - support for scrypting in Python language seen - implementation of commands whois, find, and seen su - enables change of user on chat subsystem ui - support for generic user interface (text or GUI) upnp - support for UPnP listening port forwarding
I don't sign CLA agreements, and I would like to contribute.
https://hosted.weblate.org/contributor-agreement/foxeye/pot/?next=/projects/foxeye/pot/nb_NO/
It is sort of pointless, because one would have to prove intent for it to even matter.
:)
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.