From 0aa07718054116019222cbd69b81f1508bfa8dc0 Mon Sep 17 00:00:00 2001 From: epoch Date: Sun, 9 Feb 2014 07:09:28 -0600 Subject: added minimal startup scripts. deleted a bunch of shit from compile.sh cleaned segfault a bit. made the shell script not auto-generated. everything expects /home/segfault/ to be where segfault gets ran. you have to do the chdir yourself now. --- README | 5 +---- compile.sh | 36 ++++-------------------------------- runme.sh | 3 ++- scripts/command | 3 +++ scripts/rawcommand | 3 +++ scripts/startup | 4 ++++ segfault | Bin 26200 -> 0 bytes segfault.c | 10 +++------- shell | 10 ++++++---- 9 files changed, 26 insertions(+), 48 deletions(-) create mode 100644 scripts/command create mode 100644 scripts/rawcommand create mode 100644 scripts/startup delete mode 100755 segfault diff --git a/README b/README index 6d0b047..0f43982 100644 --- a/README +++ b/README @@ -1,4 +1 @@ -test -merp -more derp -just double-checking again. +This bot expects a homedir and a user account just like any other person. diff --git a/compile.sh b/compile.sh index a920ae2..6c17703 100755 --- a/compile.sh +++ b/compile.sh @@ -1,33 +1,5 @@ #!/bin/sh -#clean it out so I quit restarting after a failed compile. >.< -INSTALL_DIR="/home/segfault/" -rm segfault -echo '#!/bin/sh' > shell -echo '# this file is generated by compile.sh. do not edit directly' >> shell -echo 'cd "'`pwd`'"' >> shell -echo 'kill `pgrep -P 1 -f "tail -f ./files/cmd_in"`' >> shell -echo 'setuidgid segfault tail -f ./files/cmd_in | setuidgid segfault su -l segfault > ./files/cmd_out 2>&1' >> shell -chmod +x shell -echo '#define CHDIR "'`pwd`'"' > config.h - -#if [ -e /usr/lib/libirc.so ]; then -# gcc -Wall -o segfault segfault.c -lirc -# rm -r /var/www/source/segfault/* -# cd /home/epoch/projects/c_/wargaming-libirc -# ./compile.sh -# cd /root/services/segfault -# cp * /var/www/source/segfault/ -# mkdir /var/www/source/segfault/scripts -# cp scripts/* /var/www/source/segfault/scripts/ -# cd /var/www/source/ -# tar -czf segfault.tgz segfault - - mkdir $INSTALL_DIR/files - mkfifo $INSTALL_DIR/files/cmd_in - mkfifo $INSTALL_DIR/files/cmd_out - cd libirc - ./compile.sh - cd .. - gcc -Wall -o segfault segfault.c -lirc -Llibirc -Ilibirc - -rm config.h +cd libirc +./compile.sh +cd .. +gcc -Wall -o segfault segfault.c -lirc -Llibirc -Ilibirc diff --git a/runme.sh b/runme.sh index bd434d4..649ec36 100755 --- a/runme.sh +++ b/runme.sh @@ -1,4 +1,5 @@ #!/bin/sh export LD_LIBRARY_PATH=`pwd`/libirc ./shell& -./segfault bot_$$ +./segfault SegFault$$ +wait diff --git a/scripts/command b/scripts/command new file mode 100644 index 0000000..adc0860 --- /dev/null +++ b/scripts/command @@ -0,0 +1,3 @@ +!leetuntail * /home/segfault/files/cmd_out +!leettail 56/home/segfault/files/cmd_out +!leetappend /home/segfault/files/cmd_in 10 %s diff --git a/scripts/rawcommand b/scripts/rawcommand new file mode 100644 index 0000000..130a4af --- /dev/null +++ b/scripts/rawcommand @@ -0,0 +1,3 @@ +!leetuntail * /home/segfault/files/cmd_out +!rawtail /home/segfault/files/cmd_out +!leetappend /home/segfault/files/cmd_in 10 %s diff --git a/scripts/startup b/scripts/startup new file mode 100644 index 0000000..28aeb10 --- /dev/null +++ b/scripts/startup @@ -0,0 +1,4 @@ +!alias !rc !eval /home/segfault/scripts/rawcommand %s +!alias !eval !leettail 22%s +!alias !c !eval /home/segfault/scripts/command %s +!raw join #default diff --git a/segfault b/segfault deleted file mode 100755 index a94eb6d..0000000 Binary files a/segfault and /dev/null differ diff --git a/segfault.c b/segfault.c index b98973c..2e8060c 100644 --- a/segfault.c +++ b/segfault.c @@ -8,7 +8,6 @@ #include #include #include -#include "config.h" #define SERVER "192.168.0.2" #define PORT "6667" @@ -22,10 +21,6 @@ #define RAWLOG "./files/rawlog" #define LOG "./files/log" -#define NEWS_PIPE "./files/news" -#define LINKS_FILE "/var/www/docs/IRClinks.txt" -#define NEWS_FILE "/var/www/cgi-bin/info/news.html" -#define PID_FILE "./files/my.pid" #define MAXTAILS 400 //just to have it more than the system default. @@ -62,7 +57,7 @@ void mywrite(int fd,char *b) { void ircmode(int fd,char *channel,char *mode,char *nick) { int sz=5+strlen(channel)+1+strlen(mode)+1+strlen(nick)+3;//"MODE ", " ", " ","\r\n\0" char *hrm=malloc(sz+1); - if(!hrm) return (void)mywrite(fd,"QUIT :malloc error 1! holy shit!\r\n"); + if(!hrm) return mywrite(fd,"QUIT :malloc error 1! holy shit!\r\n"); snprintf(hrm,sz,"MODE %s %s %s\r\n",channel,mode,nick); write(fd,hrm,strlen(hrm)); free(hrm); @@ -163,11 +158,13 @@ char *format_magic(int fd,char *from,char *nick,char *orig_fmt,char *arg) { notargs[c]=strdup(fmt+j); sz+=strlen(notargs[c]); output=malloc(sz+1); + output[0]=0; for(i=0;i ./files/cmd_out 2>&1 +#this is to keep stale tails from hanging around... +kill `pgrep -P 1 -f "tail -f /home/segfault/files/cmd_in"` +mkdir -p /home/segfault/files +mkfifo /home/segfault/files/cmd_in +mkfifo /home/segfault/files/cmd_out +tail -f /home/segfault/files/cmd_in | su -l segfault > /home/segfault/files/cmd_out 2>&1 -- cgit v1.2.3