- Timestamp:
- 2006-07-01T15:52:05Z (18 years ago)
- Branches:
- master
- Children:
- fef6116
- Parents:
- 0a3c243
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
account.c
r0a3c243 r5100caa 28 28 #include "account.h" 29 29 30 char *set_eval_account( set_t *set, char *value ); 31 30 32 account_t *account_add( irc_t *irc, struct prpl *prpl, char *user, char *pass ) 31 33 { 32 34 account_t *a; 35 set_t *s; 33 36 34 37 if( irc->accounts ) … … 48 51 a->irc = irc; 49 52 53 s = set_add( &a->set, "auto_connect", NULL, set_eval_account, a ); 54 s->flags |= ACC_SET_NOSAVE; 55 56 s = set_add( &a->set, "password", NULL, set_eval_account, a ); 57 s->flags |= ACC_SET_NOSAVE; 58 59 s = set_add( &a->set, "server", NULL, set_eval_account, a ); 60 s->flags |= ACC_SET_NOSAVE | ACC_SET_OFFLINE_ONLY; 61 62 s = set_add( &a->set, "username", NULL, set_eval_account, a ); 63 s->flags |= ACC_SET_NOSAVE | ACC_SET_OFFLINE_ONLY; 64 set_setstr( &a->set, "username", user ); 65 50 66 return( a ); 67 } 68 69 char *set_eval_account( set_t *set, char *value ) 70 { 71 account_t *acc = set->data; 72 73 /* Double-check: We refuse to edit on-line accounts. */ 74 if( acc->gc ) 75 return NULL; 76 77 if( strcmp( set->key, "username" ) == 0 ) 78 { 79 g_free( acc->user ); 80 acc->user = g_strdup( value ); 81 return value; 82 } 83 else if( strcmp( set->key, "password" ) == 0 ) 84 { 85 g_free( acc->pass ); 86 acc->pass = g_strdup( value ); 87 return NULL; /* password shouldn't be visible in plaintext! */ 88 } 89 else if( strcmp( set->key, "server" ) == 0 ) 90 { 91 g_free( acc->server ); 92 if( *value ) 93 acc->server = g_strdup( value ); 94 else 95 acc->server = NULL; 96 return value; 97 } 98 else if( strcmp( set->key, "auto_connect" ) == 0 ) 99 { 100 if( !is_bool( value ) ) 101 return NULL; 102 103 acc->auto_connect = bool2int( value ); 104 return value; 105 } 106 107 return NULL; 51 108 } 52 109 … … 130 187 } 131 188 189 while( a->set ) 190 set_del( &a->set, a->set->key ); 191 132 192 g_free( a->user ); 133 193 g_free( a->pass );
Note: See TracChangeset
for help on using the changeset viewer.