Changeset 3585
- Timestamp:
- 10/17/10 12:48:16 (13 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/module-newcamd.c
r3556 r3585 540 540 if( !cur_client()->ftab.nfilts ) 541 541 { 542 int r,add;542 int add; 543 543 for (i=0; i<psfilt->nprids; i++) { 544 544 // use server PROVID(s) (and only those which are in user's groups) 545 545 add = 0; 546 for (r=0; !add && r<CS_MAXREADER; r++) {547 if (reader[r].grp & cur_client()->grp) { 548 if (!reader[r].ftab.nfilts) {549 if (reader[r].typ & R_IS_NETWORK) add = 1; 550 for (j=0; !add && j<reader[r].nprov; j++) 551 if (b2i(3, &reader[r].prid[j][1]) == psfilt->prids[i]) add = 1; 552 } else { 553 for (j=0; !add && j<reader[r].ftab.nfilts; j++){554 ulong rcaid = reader[r].ftab.filts[j].caid; 555 if (!rcaid || rcaid == filt.caid) { 556 for (k=0; !add && k<reader[r].ftab.filts[j].nprids; k++) 557 if (reader[r].ftab.filts[j].prids[k] == psfilt->prids[i]) add = 1; 558 } 559 560 561 562 }546 struct s_reader *rdr; 547 for (rdr=first_reader; rdr ; rdr=rdr->next) 548 if (rdr->grp & cur_client()->grp) { 549 if (!rdr->ftab.nfilts) { 550 if (rdr->typ & R_IS_NETWORK) add = 1; 551 for (j=0; !add && j<rdr->nprov; j++) 552 if (b2i(3, &rdr->prid[j][1]) == psfilt->prids[i]) add = 1; 553 } else { 554 for (j=0; !add && j<rdr->ftab.nfilts; j++) { 555 ulong rcaid = rdr->ftab.filts[j].caid; 556 if (!rcaid || rcaid == filt.caid) { 557 for (k=0; !add && k<rdr->ftab.filts[j].nprids; k++) 558 if (rdr->ftab.filts[j].prids[k] == psfilt->prids[i]) add = 1; 559 } 560 } 561 } 562 } 563 563 if (add) filt.prids[filt.nprids++] = psfilt->prids[i]; 564 564 } … … 1056 1056 if (cfg->ncd_mgclient) { 1057 1057 cs_debug("newcamd: extended: report all available cards"); 1058 int r,j, k;1058 int j, k; 1059 1059 uint8 buf[512]; 1060 1060 custom_data_t *cd = malloc(sizeof(struct custom_data)); … … 1064 1064 buf[0] = MSG_SERVER_2_CLIENT_ADDCARD; 1065 1065 1066 for (r=0; r<CS_MAXREADER; r++) { 1066 struct s_reader *rdr; 1067 for (rdr=first_reader; rdr ; rdr=rdr->next) { 1067 1068 int flt = 0; 1068 if (!(r eader[r].grp & client->grp)) continue; //test - skip unaccesible readers1069 if (r eader[r].ftab.filts) {1069 if (!(rdr->grp & client->grp)) continue; //test - skip unaccesible readers 1070 if (rdr->ftab.filts) { 1070 1071 for (j=0; j<CS_MAXFILTERS; j++) { 1071 if (r eader[r].ftab.filts[j].caid) {1072 cd->caid = r eader[r].ftab.filts[j].caid;1073 for (k=0; k<r eader[r].ftab.filts[j].nprids; k++) {1074 cd->provid = r eader[r].ftab.filts[j].prids[k];1072 if (rdr->ftab.filts[j].caid) { 1073 cd->caid = rdr->ftab.filts[j].caid; 1074 for (k=0; k<rdr->ftab.filts[j].nprids; k++) { 1075 cd->provid = rdr->ftab.filts[j].prids[k]; 1075 1076 cs_debug("newcamd: extended: report card"); 1076 1077 … … 1085 1086 } 1086 1087 1087 if (r eader[r].caid[0] && !flt) {1088 if ((r eader[r].tcp_connected || reader[r].card_status == CARD_INSERTED)) {1089 cd->caid = r eader[r].caid[0];1090 for (j=0; j<r eader[r].nprov; j++) {1091 if (r eader[r].card_status == CARD_INSERTED)1092 cd->provid = (r eader[r].prid[j][1]) << 161093 | (r eader[r].prid[j][2] << 8) | reader[r].prid[j][3];1088 if (rdr->caid[0] && !flt) { 1089 if ((rdr->tcp_connected || rdr->card_status == CARD_INSERTED)) { 1090 cd->caid = rdr->caid[0]; 1091 for (j=0; j<rdr->nprov; j++) { 1092 if (rdr->card_status == CARD_INSERTED) 1093 cd->provid = (rdr->prid[j][1]) << 16 1094 | (rdr->prid[j][2] << 8) | rdr->prid[j][3]; 1094 1095 else 1095 cd->provid = (r eader[r].prid[j][0]) << 161096 | (r eader[r].prid[j][1] << 8) | reader[r].prid[j][2];1096 cd->provid = (rdr->prid[j][0]) << 16 1097 | (rdr->prid[j][1] << 8) | rdr->prid[j][2]; 1097 1098 1098 1099 cs_debug("newcamd: extended: report card");
Note:
See TracChangeset
for help on using the changeset viewer.