//#include <sys/wait.h>
//#include <errno.h>
-
-
using std::ofstream;
using std::ifstream;
using std::cerr;
int main(int argc, char *argv[])
{
- char buffer[1024], buf[1024];
- int connected;
- long lastidlecheck;
- char *cmd, *source = NULL, *conf = "gameserv.conf";
- srand(time(NULL));
+ char buffer[1024], buf[1024];
+ memset(buffer, 0, 1024);
+ memset(buf, 0, 1024);
+ int connected;
+ long lastidlecheck;
+ char *cmd, *source = NULL, *conf;
+ srand(time(NULL));
+ conf = new char[16];
+ strcpy(conf, "gameserv.conf");
/*
* This needs to be fixed to work for any number of arguments in any
cout << "--help Displays this help dialogue" << endl;
return 1;
}
- conf = new char[strlen(argv[1])];
- strcpy(conf, argv[1]);
+ delete []conf;
+ conf = argv[1];
}
prettyIntro();
else
exit(2);
+ if (argc <= 1)
+ delete []conf;
+
// Turn into a daemon
if (daemon(1,0) < 0)
{
raw("PROTOCTL NICKv2 VHP");
raw("PASS :%s", remotepass);
raw("SERVER %s 1 :%s", servername, servername);
- raw("NICK %S 1 %d %S %s %s %d +wghraAxNt %s :%s v%s", time(NULL), gshost,
- servername, time(NULL), gshost, PACKAGE, VERSION);
+ raw("NICK %S 1 %d %S %s %s %d +w%s %s :%s v%s", time(NULL), gshost,
+ servername, time(NULL), (isBOper() ? "o" : ""), gshost, PACKAGE, VERSION);
raw(":%S JOIN %s", c_Forest);
raw(":%S MODE %s +tn", c_Forest);
#elif defined(BAHAMUT)
raw("PASS %s :TS", remotepass);
raw("SERVER %s 1 :%s", servername, servername);
- raw("NICK %S 1 %d +w %s %s %s 0 :GameServ", time(NULL), gsident, gshost,
- servername);
+ raw("NICK %S 1 %d +w%s %s %s %s 0 :GameServ", time(NULL), (isBOper() ? "o" : ""),
+ gsident, gshost, servername);
raw(":%s SJOIN %d %d %s +nt :@%S", servername, time(NULL), time(NULL), c_Forest);
#elif defined(HYBRID)
raw("PASS %s :TS", remotepass);
raw("SERVER %s 1 :%s", servername, servername);
- raw("NICK %S 1 %d +w %s %s %s :GameServ", time(NULL), gsident, gshost,
- servername);
+ raw("NICK %S 1 %d +w%s %s %s %s :GameServ", time(NULL), (isBOper() ? "o" : ""),
+ gsident, gshost, servername);
raw(":%s SJOIN %ld %s +nt :@%S", servername, time(NULL), c_Forest);
#elif defined(P10)
// Server numeric is: [] <-- must be unique
raw("PASS :%s", remotepass);
raw("SERVER %s 1 %d %d P10 []AAF :%s", servername, time(NULL), time(NULL), servername);
- raw("[] N %S 1 %d %s %s DAqAoB %s :%S", time(NULL), gsident, gshost, gsnum);
+ raw("[] N %S 1 %d %s %s %s DAqAoB %s :%S", time(NULL), gsident, gshost,
+ (isBOper() ? "+o" : "") gsnum);
raw("[] B %s %d +tn %s:o", c_Forest, time(NULL) - 864000, gsnum);
#endif
delete [] longname;
gameserv(source, rest);
}
- else if (stricmp(dest, c_Forest) == 0 && listenonc_forest)
+ else if (stricmp(dest, c_Forest) == 0 && isListenOnCF())
{
delete [] longname;
forest(source, rest);