Changeset 8230
- Timestamp:
- 01/28/13 22:53:42 (11 years ago)
- Location:
- trunk
- Files:
-
- 3 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/oscam-config-account.c
r8209 r8230 215 215 } 216 216 217 static void account_ident_fn(const char *token, char *value, void *setting, FILE *f) {218 struct s_auth *account = setting;219 if (value) { // TODO: ftab clear220 strtolower(value);221 chk_ftab(value, &account->ftab, "user", account->usr, "provid");222 return;223 }224 if (account->ftab.nfilts || cfg.http_full_cfg) {225 value = mk_t_ftab(&account->ftab);226 fprintf_conf(f, token, "%s\n", value);227 free_mk_t(value);228 }229 }230 231 static void account_chid_fn(const char *token, char *value, void *setting, FILE *f) {232 struct s_auth *account = setting;233 if (value) {234 strtolower(value);235 chk_ftab(value, &account->fchid, "user", account->usr, "chid");236 return;237 }238 if (account->fchid.nfilts || cfg.http_full_cfg) {239 value = mk_t_ftab(&account->fchid);240 fprintf_conf(f, token, "%s\n", value);241 free_mk_t(value);242 }243 }244 245 217 void class_fn(const char *token, char *value, void *setting, FILE *f) { 246 218 CLASSTAB *cltab = setting; … … 294 266 DEF_OPT_FUNC("group" , OFS(grp), group_fn ), 295 267 DEF_OPT_FUNC("services" , OFS(sidtabs), services_fn ), 296 DEF_OPT_FUNC ("ident" , 0, account_ident_fn),297 DEF_OPT_FUNC ("chid" , 0, account_chid_fn),268 DEF_OPT_FUNC_X("ident" , OFS(ftab), ftab_fn, FTAB_ACCOUNT | FTAB_PROVID ), 269 DEF_OPT_FUNC_X("chid" , OFS(fchid), ftab_fn, FTAB_ACCOUNT | FTAB_CHID ), 298 270 DEF_OPT_FUNC("class" , OFS(cltab), class_fn ), 299 271 #ifdef CS_CACHEEX -
trunk/oscam-config-reader.c
r8229 r8230 431 431 } 432 432 433 static void ident_fn(const char *token, char *value, void *setting, FILE *f) { 434 struct s_reader *rdr = setting; 433 void ftab_fn(const char *token, char *value, void *setting, long ftab_type, FILE *f) { 434 const char *zType = NULL, *zName = NULL, *zFiltNamef = NULL; 435 struct s_reader *rdr = NULL; 436 FTAB *ftab = setting; 437 438 if (ftab_type & FTAB_ACCOUNT) { 439 struct s_auth *account = NULL; 440 zType = "account"; 441 if (ftab_type & FTAB_PROVID) account = container_of(setting, struct s_auth, ftab); 442 if (ftab_type & FTAB_CHID) account = container_of(setting, struct s_auth, fchid); 443 if (account) zName = account->usr; 444 } 445 if (ftab_type & FTAB_READER) { 446 zType = "reader"; 447 if (ftab_type & FTAB_PROVID) rdr = container_of(setting, struct s_reader, ftab); 448 if (ftab_type & FTAB_CHID) rdr = container_of(setting, struct s_reader, fchid); 449 if (rdr) zName = rdr->label; 450 } 451 if (ftab_type & FTAB_PROVID) zFiltNamef = "provid"; 452 if (ftab_type & FTAB_CHID) zFiltNamef = "chid"; 453 435 454 if (value) { 436 455 if (strlen(value)) { 437 456 strtolower(value); 438 chk_ftab(value, &rdr->ftab, "reader", rdr->label, "provid");457 chk_ftab(value, ftab, zType, zName, zFiltNamef); 439 458 } else { 440 clear_ftab(&rdr->ftab); 441 } 442 rdr->changes_since_shareupdate = 1; 443 return; 444 } 445 value = mk_t_ftab(&rdr->ftab); 446 if (strlen(value) > 0 || cfg.http_full_cfg) 447 fprintf_conf(f, token, "%s\n", value); 448 free_mk_t(value); 449 } 450 451 static void chid_fn(const char *token, char *value, void *setting, FILE *f) { 452 struct s_reader *rdr = setting; 453 if (value) { 454 strtolower(value); 455 chk_ftab(value, &rdr->fchid, "reader", rdr->label, "chid"); 456 rdr->changes_since_shareupdate = 1; 457 return; 458 } 459 value = mk_t_ftab(&rdr->fchid); 459 clear_ftab(ftab); 460 } 461 if (rdr) 462 rdr->changes_since_shareupdate = 1; 463 return; 464 } 465 value = mk_t_ftab(ftab); 460 466 if (strlen(value) > 0 || cfg.http_full_cfg) 461 467 fprintf_conf(f, token, "%s\n", value); … … 719 725 DEF_OPT_INT32("mode" , OFS(azbox_mode), -1 ), 720 726 #endif 721 DEF_OPT_FUNC ("ident" , 0, ident_fn),722 DEF_OPT_FUNC ("chid" , 0, chid_fn),727 DEF_OPT_FUNC_X("ident" , OFS(ftab), ftab_fn, FTAB_READER | FTAB_PROVID ), 728 DEF_OPT_FUNC_X("chid" , OFS(fchid), ftab_fn, FTAB_READER | FTAB_CHID ), 723 729 DEF_OPT_FUNC("class" , OFS(cltab), class_fn ), 724 730 DEF_OPT_FUNC("aeskeys" , 0, aeskeys_fn ), -
trunk/oscam-config.h
r8221 r8230 38 38 void services_fn(const char *token, char *value, void *setting, FILE *f); 39 39 40 enum ftab_fn { 41 FTAB_ACCOUNT = 0x01, 42 FTAB_READER = 0x02, 43 FTAB_PROVID = 0x04, 44 FTAB_CHID = 0x08, 45 }; 46 47 void ftab_fn(const char *token, char *value, void *setting, long ftab_type, FILE *f); 48 40 49 #endif
Note:
See TracChangeset
for help on using the changeset viewer.