Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- void LoadConfig() {
- FILE *file;
- char asdf[512];
- char *lnbreak, *tmp, *buf, *equsgn;
- int blarg, curprof, i, i2, cmdi, round, round2;
- blarg = 0;
- strcpy(asdf, dir);
- strcat(asdf, "bnd.conf");
- file = fopen(asdf, "r");
- if (!file) {
- printf("%s missing: aborting load\n", asdf);
- exit(1);
- }
- do {
- fgets(asdf, sizeof(asdf), file);
- buf = skipws(asdf);
- if (*buf != '#') {
- lnbreak = buf;
- while (*lnbreak != '\n' && *lnbreak != '\r' && *lnbreak)
- lnbreak++;
- *lnbreak = 0;
- if (*(int *)buf == ' gfc') {
- buf += 4;
- if (*(int *)buf == 'niam') {
- buf = skipws(buf + 4);
- if (*buf == '{') {
- blarg = 1;
- round = 0;
- }
- } else if (*(int *)buf == 'forp') {
- buf += 4;
- if (*(int *)buf == ' eli') {
- buf += 4;
- tmp = buf;
- while (*tmp != ' ' && tmp != lnbreak)
- tmp++;
- *tmp++ = 0;
- curprof = atoi(buf);
- round2 = 0;
- if (curprof > 31)
- continue;
- if (curprof > numbots)
- numbots = curprof + 1;
- bot[curprof] = (LPBOT)malloc(sizeof(BOT));
- memset(bot[curprof], 0, sizeof(BOT));
- buf = skipws(tmp);
- if (*buf == '{')
- blarg = 2;
- }
- }
- } else if (*buf == '}') {
- blarg = 0;
- } else if (blarg == 1) {
- equsgn = strchr(buf, '=');
- if (!equsgn)
- continue;
- *equsgn++ = 0;
- i = round;
- i2 = 0;
- while (i2 != sizeof(maincfgstrs) / sizeof(char *)) {
- if (i == sizeof(maincfgstrs) / sizeof(char *))
- i = 0;
- if (!strcasecmp(buf, maincfgstrs[i])) {
- cmdi = i;
- goto donefor1;
- }
- i++;
- i2++;
- }
- cmdi = -1;
- donefor1:
- switch (cmdi) {
- case -1:
- printf("unrecognized config entry \'%s\', ignoring\n", buf);
- break;
- case CFG_SERVER:
- strncpy(server, equsgn, sizeof(server));
- break;
- case CFG_BNLSSERVER:
- strncpy(bnlsserver, equsgn, sizeof(bnlsserver));
- break;
- case CFG_HOME:
- strncpy(home, equsgn, sizeof(home));
- break;
- case CFG_OWNER:
- AddOwner(equsgn);
- break;
- case CFG_MASTERS:
- AddMasters(equsgn);
- break;
- case CFG_USEBNLS:
- if (*equsgn - '0')
- gstate |= GFS_USEBNLS;
- break;
- case CFG_FORCEPROXY:
- if (*equsgn - '0')
- gstate |= GFS_FORCEPROXY;
- break;
- case CFG_IPBAN:
- if (*equsgn - '0')
- gstate |= GFS_IPBAN;
- break;
- case CFG_WAR3VB:
- sscanf(equsgn, "%X", &verbyte);
- break;
- case CFG_HASH1:
- case CFG_HASH2:
- case CFG_HASH3:
- strncpy(hashes[cmdi - CFG_HASH1], equsgn, sizeof(hashes[i]));
- break;
- case CFG_UPDATESITE:
- strncpy(updatesite, equsgn, sizeof(updatesite));
- break;
- case CFG_UPDATEFILE:
- strncpy(updateverfile, equsgn, sizeof(updateverfile));
- break;
- case CFG_CHECKUPDATES:
- if (*equsgn - '0')
- gstate |= GFS_CHECKUPDATES;
- break;
- case CFG_PROCESSPRIORITY:
- //There is no command for this since it could be set with
- //utilities such as renice and Windows Task Manager
- //This function could fail silently - check with ps ax
- if (*equsgn)
- SetProcessPriority(atoi(equsgn));
- break;
- case CFG_FLOODTICK:
- floodthresh_tick = atoi(equsgn);
- break;
- case CFG_FLOODNUMTICKS:
- floodthresh_numticks = atoi(equsgn);
- break;
- case CFG_FLOODOVER:
- floodthresh_over = atoi(equsgn);
- }
- round++;
- } else if (blarg == 2) {
- equsgn = strchr(buf, '=');
- if (!equsgn)
- continue;
- *equsgn++ = 0;
- i = round2;
- i2 = 0;
- while (i2 != sizeof(profcfgstrs) / sizeof(char *)) {
- if (i == sizeof(profcfgstrs) / sizeof(char *))
- i = 0;
- if (!strcasecmp(buf, profcfgstrs[i])) {
- cmdi = i;
- goto donefor2;
- }
- i++;
- i2++;
- }
- cmdi = -1;
- donefor2:
- switch (cmdi) {
- case -1:
- break;
- case CFG_USER:
- strncpy(bot[curprof]->username, equsgn, sizeof(bot[curprof]->username));
- break;
- case CFG_PASS:
- strncpy(bot[curprof]->password, equsgn, sizeof(bot[curprof]->password));
- break;
- case CFG_CDKEY:
- AddCDKeyToList(equsgn, curprof);
- defcdkeys++;
- break;
- case CFG_TRIGGER:
- if (*equsgn)
- bot[curprof]->trigger = *equsgn;
- break;
- case CFG_USEPROXY:
- if (*equsgn - '0')
- bot[curprof]->fstate |= BFS_USEPROXY;
- break;
- case CFG_AUTOCONNECT:
- if (*equsgn - '0')
- bot[curprof]->fstate |= BFS_AUTOCONN;
- }
- round2++;
- }
- }
- } while (!feof(file));
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement