diff --git a/dist.c b/dist.c index 7746dad..76e5a2a 100644 --- a/dist.c +++ b/dist.c @@ -21,20 +21,33 @@ struct serverinfo unsigned port; }; -char *domains[]={"fakehermes.org","iteisa.net",NULL}; -struct serverinfo servers[]={ - {"mail.gutierrezdequevedo.com",2525}, - {"94.23.193.98",25} -}; - unsigned long connid=0; struct serverinfo *get_server(char *domain) { - int i; - for(i=0;domains[i];i++) - if(!cmp(domain,domains[i])) - return &servers[i]; + char buffer[1024]; + unsigned long *longs; + + /* connect to mysql and get values */ + db=mysql_init(NULL); + if(NULL==mysql_real_connect(db,DBHOST,DBUSER,DBPASS,DBNAME,0,NULL,0)) { fprintf(stderr,"%s\n",mysql_error(db)); mysql_close(db); return NULL; } + + /* clean string */ + escape(db,domain); + + /* generate sql */ + snprintf(buffer,sizeof buffer,"SELECT `host`,`port` FROM `domains` WHERE `domain`=\"%s\" ORDER BY RAND();",domain); + + /* query! */ + if(mysql_query(db,buffer)) { fprintf(stderr,"%s\n",mysql_error(db)); mysql_close(db); return NULL; } + + for(i=0;row=mysql_fetch_row(db);i++) + { + longs=mysql_fetch_lengths(row); + + } + mysql_close(db); + return NULL; } diff --git a/utils.c b/utils.c index e6945a0..2f8a276 100644 --- a/utils.c +++ b/utils.c @@ -138,6 +138,7 @@ int create_connected_socket(char *address,unsigned int port) addr.sin_addr.s_addr=resolve(address); addr.sin_port=htons(port); + if(0==addr.sin_addr.s_addr) return -1; /* error resolving name */ /* connect to remote host */ snprintf(m_buffer,sizeof(m_buffer),"Connecting to %s:%d",address,port); debug(m_buffer);