X-Git-Url: http://git.pk910.de/?a=blobdiff_plain;f=src%2FDBHelper.c;h=40d3be3506e34f4673f08270bd1e422aae2456bc;hb=c8e7ce1c57afaebf3996a6712c45f4c89c34ba44;hp=cfcdd20eab128d79fde135e7f3ec133e1ba182cf;hpb=689da1db7e2517c187ce76c6c553e20d630a7f36;p=NeonServV5.git diff --git a/src/DBHelper.c b/src/DBHelper.c index cfcdd20..40d3be3 100644 --- a/src/DBHelper.c +++ b/src/DBHelper.c @@ -25,6 +25,8 @@ #include "IRCEvents.h" #include "HandleInfoHandler.h" #include "ClientSocket.h" +#include "bots.h" +#include "ConfigParser.h" void _loadUserSettings(struct UserNode *user) { SYNCHRONIZE(cache_sync); @@ -244,6 +246,14 @@ int renameAccount(char *oldauth, char *newauth) { //simply rename the account printf_mysql_query("UPDATE `users` SET `user_user` = '%s' WHERE `user_id` = '%d'", escape_string(newauth), userid); } + char *alertchan = get_string_field("General.CheckAuths.alertchan"); + if(alertchan) { + struct ChanNode *alertchan_chan = getChanByName(alertchan); + struct ClientSocket *alertclient; + if(alertchan_chan && (alertclient = getChannelBot(alertchan_chan, 0)) != NULL) { + putsock(alertclient, "PRIVMSG %s :Renamed User %s to %s", alertchan_chan->name, oldauth, newauth); + } + } return 1; } return 0; @@ -252,28 +262,35 @@ int renameAccount(char *oldauth, char *newauth) { static AUTHLOOKUP_CALLBACK(event_user_registered_auth_lookup); struct event_user_registered_cache { - struct UserNode *new_user; + struct UserNode *user; char *oldauth; }; -static int event_user_registered(struct UserNode *old_user, struct UserNode *new_user) { +static void event_user_registered(struct UserNode *user, char *new_mask) { //check if there is a fakehost on both sides... - if(!isFakeHost(old_user->host) || !isFakeHost(new_user->host)) return 0; + //extract host from new_mask + char *new_host = strchr(new_mask, '@'); + if(new_host) + new_host++; + else + return; + if(!isFakeHost(user->host) || !isFakeHost(new_host)) + return; //extract user names char oldauth[AUTHLEN], newauth[AUTHLEN]; char *p; - if((p = strstr(old_user->host, "."))) { + if((p = strstr(user->host, "."))) { *p = '\0'; - strcpy(oldauth, old_user->host); + strcpy(oldauth, user->host); *p = '.'; } - if((p = strstr(new_user->host, "."))) { + if((p = strstr(new_host, "."))) { *p = '\0'; - strcpy(newauth, new_user->host); + strcpy(newauth, new_host); *p = '.'; } if(!stricmp(oldauth, newauth)) - return 0; + return; //check if we know this user; then check the new auth MYSQL_RES *res; MYSQL_ROW row; @@ -283,21 +300,21 @@ static int event_user_registered(struct UserNode *old_user, struct UserNode *new struct event_user_registered_cache *cache = malloc(sizeof(*cache)); if (!cache) { perror("malloc() failed"); - return 1; + return; } - cache->new_user = new_user; + cache->user = user; cache->oldauth = strdup(oldauth); lookup_authname(newauth, 0, event_user_registered_auth_lookup, cache); } - return 1; + return; } static AUTHLOOKUP_CALLBACK(event_user_registered_auth_lookup) { struct event_user_registered_cache *cache = data; if(exists) { renameAccount(cache->oldauth, auth); - strcpy(cache->new_user->auth, auth); - cache->new_user->flags |= USERFLAG_ISAUTHED; + strcpy(cache->user->auth, auth); + cache->user->flags |= USERFLAG_ISAUTHED; } free(cache->oldauth); free(cache);