I hope this is ok? No bad code or anything... It's getting late, so send
flames to /dev/null, any constructive comments are more than welcome. I
hope someone can use this...
Uhm, I now realized that this is using the file functions from the ascii
file package. Shouldn't be too hard to adapt it to a mud without, or?
Regards,
/Torgny
The config file should look like this:
--8<-----------
host: localhost
db : YOUR_DB
user: YOUR_USER
pass: YOUR_PASS
--8<-----------
Here's the function, put it in db.c and prototype it:
--8<-----------
void load_sql_settings(void) {
FBFILE *fl;
char line[MAX_INPUT_LENGTH + 1], tag[6];
if(!(fl = fbopen(LIB_ETC"mysql", FB_READ))) {
extended_mudlog(BRF, SYSL_SQL, TRUE, "SYSERR: Couldn't open MySQL
settings.");
exit(1);
}
while(fbgetline(fl, line)) {
tag_argument(line, tag);
if(!strcmp(tag, "host"))
mysql_host = str_dup(line);
else if(!strcmp(tag, "db "))
mysql_db = str_dup(line);
else if(!strcmp(tag, "user"))
mysql_usr = str_dup(line);
else if(!strcmp(tag, "pass"))
mysql_pwd = str_dup(line);
else {
extended_mudlog(BRF, SYSL_SQL, TRUE, "SYSERR: Unknown option %s in MySQL
settings.", line);
exit(1);
}
}
fbclose(fl);
}
--8<-----------
You also need to stick these in the top of db.c:
extern char *mysql_host;
extern char *mysql_db;
extern char *mysql_usr;
extern char *mysql_pwd;
Then, in comm.c:
char *mysql_host;
char *mysql_db;
char *mysql_usr;
char *mysql_pwd;
And further down in int main(), above if (scheck):
--8<-----------
load_sql_settings();
init_mysql(mysql_db);
--8<-----------
--
+---------------------------------------------------------------+
| FAQ: http://qsilver.queensu.ca/~fletchra/Circle/list-faq.html |
| Archives: http://post.queensu.ca/listserv/wwwarch/circle.html |
| Newbie List: http://groups.yahoo.com/group/circle-newbies/ |
+---------------------------------------------------------------+
This archive was generated by hypermail 2b30 : 06/25/03 PDT