aboutsummaryrefslogtreecommitdiffstats
path: root/commands.c
diff options
context:
space:
mode:
Diffstat (limited to 'commands.c')
-rw-r--r--commands.c74
1 files changed, 29 insertions, 45 deletions
diff --git a/commands.c b/commands.c
index 504a9345..be13ff49 100644
--- a/commands.c
+++ b/commands.c
@@ -85,7 +85,7 @@ int cmd_help( irc_t *irc, char **cmd )
int cmd_identify( irc_t *irc, char **cmd )
{
- int checkie = bitlbee_load( irc, cmd[1] );
+ int checkie = global.storage->load( irc->nick, cmd[1], irc );
if( checkie == -1 )
{
@@ -109,30 +109,25 @@ int cmd_identify( irc_t *irc, char **cmd )
int cmd_register( irc_t *irc, char **cmd )
{
- int checkie;
- char path[512];
-
if( global.conf->authmode == AUTHMODE_REGISTERED )
{
irc_usermsg( irc, "This server does not allow registering new accounts" );
return( 0 );
}
-
- g_snprintf( path, 511, "%s%s%s", global.conf->configdir, irc->nick, ".accounts" );
- checkie = access( path, F_OK );
-
- g_snprintf( path, 511, "%s%s%s", global.conf->configdir, irc->nick, ".nicks" );
- checkie += access( path, F_OK );
-
- if( checkie == -2 )
- {
- setpassnc( irc, cmd[1] );
- root_command_string( irc, user_find( irc, irc->mynick ), "save", 0 );
- irc->status = USTATUS_IDENTIFIED;
- }
- else
- {
- irc_usermsg( irc, "Nick is already registered" );
+
+ setpassnc( irc, cmd[1] );
+ switch( global.storage->save( irc, FALSE )) {
+ case STORAGE_ALREADY_EXISTS:
+ irc_usermsg( irc, "Nick is already registered" );
+ break;
+
+ case STORAGE_OK:
+ irc->status = USTATUS_IDENTIFIED;
+ break;
+
+ default:
+ irc_usermsg( irc, "Error registering" );
+ break;
}
return( 0 );
@@ -140,35 +135,24 @@ int cmd_register( irc_t *irc, char **cmd )
int cmd_drop( irc_t *irc, char **cmd )
{
- char s[512];
- FILE *fp;
+ storage_status_t status;
- g_snprintf( s, 511, "%s%s%s", global.conf->configdir, irc->nick, ".accounts" );
- fp = fopen( s, "r" );
- if( !fp )
- {
+ status = global.storage->remove (irc->nick, cmd[1]);
+ switch (status) {
+ case STORAGE_NO_SUCH_USER:
irc_usermsg( irc, "That account does not exist" );
return( 0 );
- }
-
- fscanf( fp, "%32[^\n]s", s );
- fclose( fp );
- if( setpass( irc, cmd[1], s ) < 0 )
- {
- irc_usermsg( irc, "Incorrect password" );
+ case STORAGE_INVALID_PASSWORD:
+ irc_usermsg( irc, "Password invalid" );
+ return( 0 );
+ case STORAGE_OK:
+ setpassnc( irc, NULL );
+ irc_usermsg( irc, "Account `%s' removed", irc->nick );
+ return( 0 );
+ default:
+ irc_usermsg( irc, "Error: '%d'", status );
return( 0 );
}
-
- g_snprintf( s, 511, "%s%s%s", global.conf->configdir, irc->nick, ".accounts" );
- unlink( s );
-
- g_snprintf( s, 511, "%s%s%s", global.conf->configdir, irc->nick, ".nicks" );
- unlink( s );
-
- setpassnc( irc, NULL );
- irc_usermsg( irc, "Files belonging to account `%s' removed", irc->nick );
-
- return( 0 );
}
int cmd_account( irc_t *irc, char **cmd )
@@ -633,7 +617,7 @@ int cmd_set( irc_t *irc, char **cmd )
int cmd_save( irc_t *irc, char **cmd )
{
- if( bitlbee_save( irc ) )
+ if( global.storage->save( irc, TRUE ) )
irc_usermsg( irc, "Configuration saved" );
else
irc_usermsg( irc, "Configuration could not be saved!" );