Changeset 11437
- Timestamp:
- 10/21/18 16:17:20 (5 years ago)
- Location:
- trunk
- Files:
-
- 6 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/module-gbox.c
r11414 r11437 325 325 if (!proxy->reader) { return -1; } 326 326 proxy->reader->tcp_connected = 0; 327 proxy->reader->card_status = NO_CARD;327 proxy->reader->card_status = CARD_NEED_INIT; 328 328 proxy->reader->last_s = proxy->reader->last_g = 0; 329 329 … … 475 475 } 476 476 477 void gbox_reconnect_client(uint16_t gbox_id) 478 { 479 struct s_client *cl; 480 cs_readlock(__func__, &clientlist_lock); 481 for(cl = first_client; cl; cl = cl->next) 482 { 483 if(cl->gbox && cl->typ == 'p' && cl->gbox_peer_id == gbox_id) 484 { 477 void gbox_reconnect_peer(struct s_client *cl) 478 { 479 struct gbox_peer *peer = cl->gbox; 485 480 hostname2ip(cl->reader->device, &SIN_GET_ADDR(cl->udp_sa)); 486 481 SIN_GET_FAMILY(cl->udp_sa) = AF_INET; … … 488 483 hostname2ip(cl->reader->device, &(cl->ip)); 489 484 gbox_reinit_proxy(cl); 490 gbox_send_hello(cl, GBOX_STAT_HELLOL); //comment out line,if endless loops occur on LTE/DSL-Hybrid system @IP change 491 } 485 cs_log("reconnect %s peer: %04X", username(cl), peer->gbox.id); 486 gbox_send_hello(cl, GBOX_STAT_HELLOL); 487 return; 488 } 489 490 void restart_gbox_peer(char *rdrlabel, uint8_t allrdr, uint16_t gbox_id) 491 { 492 struct s_client *cl; 493 cs_readlock(__func__, &clientlist_lock); 494 for(cl = first_client; cl; cl = cl->next) 495 { 496 if(cl->gbox && cl->typ == 'p' && 497 ((rdrlabel && !strcmp(rdrlabel, cl->reader->label)) || 498 allrdr || (gbox_id && cl->gbox_peer_id == gbox_id))) 499 { gbox_reconnect_peer(cl); } 492 500 } 493 501 cs_readunlock(__func__, &clientlist_lock); … … 501 509 // gbox_check_header_recvd(cli, NULL, b, l); 502 510 } 503 return 0;511 return NULL; 504 512 } 505 513 … … 1276 1284 { 1277 1285 cs_log("IP change received - peer %04X. Previous IP = %s. Reconnecting...", cli->gbox_peer_id, cs_inet_ntoa(proxy->ip)); 1278 gbox_reconnect_client(cli->gbox_peer_id);1286 restart_gbox_peer(NULL, 0, cli->gbox_peer_id); 1279 1287 write_msg_info(cli, MSGID_IPCHANGE, 0, 0); 1280 1288 return -1; -
trunk/module-gbox.h
r11399 r11437 176 176 void gbox_send_good_night(void); 177 177 void gbox_send_goodbye(struct s_client *cli); 178 void restart_gbox_peer(char *rdrlabel, uint8_t all, uint16_t gbox_id); 178 179 extern void gbx_local_card_changed(void); 179 180 #else -
trunk/module-webif.c
r11424 r11437 33 33 #ifdef MODULE_GBOX 34 34 #include "module-gbox-sms.h" 35 #include "module-gbox.h" 36 #include "module-gbox-cards.h" 35 37 #endif 36 38 … … 1767 1769 } 1768 1770 } 1769 restart_cardreader(rdr, 1); 1771 1772 if(rdr->typ != R_GBOX) 1773 { 1774 restart_cardreader(rdr, 1); 1775 } 1776 #ifdef MODULE_GBOX 1777 else 1778 { 1779 restart_gbox_peer(rdr->label, 0, 0); 1780 cs_log("gbox -> you must restart oscam so that setting becomes effective"); 1781 } 1782 #endif 1783 cs_log("reader %s %s by WebIf", rdr->label, rdr->enable == 1 ? "enabled":"disabled"); 1784 1770 1785 if(write_server() != 0) { tpl_addMsg(vars, "Write Config failed!"); } 1771 1786 } … … 2107 2122 if(is_network_reader(rdr)) //physical readers make trouble if re-started 2108 2123 { 2109 restart_cardreader(rdr, 1); 2124 if(rdr) 2125 { 2126 if(rdr->typ != R_GBOX) 2127 { 2128 restart_cardreader(rdr, 1); 2129 } 2130 #ifdef MODULE_GBOX 2131 else 2132 { 2133 //cs_log("SAVE - single gbox reader %s restarted by WebIf", rdr->label); 2134 restart_gbox_peer(rdr->label, 0, 0); 2135 } 2136 #endif 2137 } 2110 2138 } 2111 2139 … … 2897 2925 { 2898 2926 case NO_CARD: 2899 txt = "OFF"; 2927 if(rdr->typ == R_GBOX) 2928 { txt = "ONL no crd"; } 2929 else 2930 { txt = "OFF"; } 2900 2931 break; 2901 2932 case UNKNOWN: … … 2906 2937 break; 2907 2938 case CARD_NEED_INIT: 2908 txt = "NEEDINIT"; 2939 if(rdr->typ == R_GBOX) 2940 { txt = "OFFLINE"; } 2941 else 2942 { txt = "NEEDINIT"; } 2909 2943 break; 2910 2944 case CARD_INSERTED: 2911 2945 if(cl->typ == 'p') 2912 { txt = "CONNECTED"; } 2946 { 2947 if(rdr->typ == R_GBOX) 2948 { txt = "ONL w/crd"; } 2949 else 2950 { txt = "CONNNECTED"; } 2951 } 2913 2952 else 2914 2953 { txt = "CARDOK"; } … … 4764 4803 if(rdr) 4765 4804 { 4766 add_job(rdr->client, ACTION_READER_RESTART, NULL, 0); 4805 if(rdr->typ != R_GBOX) 4806 { 4807 add_job(rdr->client, ACTION_READER_RESTART, NULL, 0); 4808 } 4809 #ifdef MODULE_GBOX 4810 else 4811 { 4812 restart_gbox_peer(rdr->label, 0, 0); 4813 } 4814 #endif 4767 4815 cs_log("Reader %s restarted by WebIF from %s", rdr->label, cs_inet_ntoa(GET_IP())); 4768 4816 } … … 4889 4937 { user_count_all++; } 4890 4938 else if(cl->typ == 'p') 4891 { proxy_count_all++; if(cl->reader->card_status != CARD_INSERTED) { proxy_count_off++; } } 4939 { 4940 proxy_count_all++; 4941 if((cl->reader->typ == R_GBOX && cl->reader->card_status != CARD_INSERTED && cl->reader->card_status != NO_CARD) || 4942 (cl->reader->typ != R_GBOX && cl->reader->card_status != CARD_INSERTED)) 4943 { proxy_count_off++; } 4944 } 4892 4945 else if(cl->typ == 'r') 4893 4946 { reader_count_all++; if(cl->reader->card_status != CARD_INSERTED) { reader_count_off++; } } … … 5288 5341 char *txt = "OK"; 5289 5342 if(!rdr && (cl->typ == 'r' || cl->typ == 'p')) { txt = "UNKNOWN"; } 5343 5290 5344 else if(cl->typ == 'r' || cl->typ == 'p') //reader or proxy 5291 5345 { … … 5308 5362 { 5309 5363 case NO_CARD: 5310 txt = "OFF"; 5364 if(rdr->typ == R_GBOX) 5365 { txt = "ONL"; } 5366 else 5367 { txt = "OFF"; } 5311 5368 break; 5312 5369 case UNKNOWN: … … 5317 5374 break; 5318 5375 case CARD_NEED_INIT: 5376 if(rdr->typ == R_GBOX) 5377 { txt = "OFFLINE"; } 5319 5378 #ifdef CS_CACHEEX 5320 if (cl->reader->cacheex.mode > 0) 5321 { 5322 txt = "CCcam CacheEX"; 5323 } 5379 else if (cl->reader->cacheex.mode > 0) 5380 { txt = "CCcam CacheEX"; } 5381 #endif 5324 5382 else 5325 { 5326 #endif 5327 txt = "NEEDINIT"; 5328 #ifdef CS_CACHEEX 5329 } 5330 #endif 5383 { txt = "NEEDINIT"; } 5331 5384 break; 5332 5385 case CARD_INSERTED: 5333 5386 if(cl->typ == 'p') 5334 { txt = "CONNECTED"; } 5387 { 5388 if(rdr->typ == R_GBOX) 5389 { txt = "ONL"; } 5390 else 5391 { txt = "CONNNECTED"; } 5392 } 5335 5393 else 5336 5394 { txt = "CARDOK"; } … … 5342 5400 txt = "UNDEF"; 5343 5401 } 5402 #ifdef MODULE_GBOX 5403 if(rdr->typ == R_GBOX) 5404 { 5405 struct gbox_peer *peer = cl->gbox; 5406 char gbx_txt[32]; 5407 memset(gbx_txt, 0, sizeof(gbx_txt)); 5408 if(!strcmp(txt, "OFFLINE")) 5409 { snprintf(gbx_txt, sizeof(gbx_txt), "%s | ID: %04X", txt, peer->gbox.id); } 5410 else 5411 { snprintf(gbx_txt, sizeof(gbx_txt), "%s | crd: %d | ID: %04X", txt, gbox_count_peer_cards(peer->gbox.id), peer->gbox.id); } 5412 txt = gbx_txt; 5413 } 5414 #endif 5344 5415 } 5416 5345 5417 tpl_addVar(vars, TPLADD, "CLIENTCON", txt); 5346 5418 -
trunk/oscam-config-reader.c
r11345 r11437 2 2 3 3 #include "globals.h" 4 #include "module-gbox.h"5 4 #include "module-stat.h" 6 5 #include "oscam-aes.h" … … 14 13 #include "oscam-reader.h" 15 14 #include "oscam-string.h" 15 #ifdef MODULE_GBOX 16 #include "module-gbox.h" 17 #endif 16 18 17 19 #define cs_srvr "oscam.server" … … 1028 1030 #endif 1029 1031 1032 #ifdef MODULE_GBOX 1033 // These are written only when the reader is GBOX 1034 static const char *gbox_settings[] = 1035 { 1036 "gbox_max_distance", "gbox_max_ecm_send", "gbox_reshare", "cccam_reshare", 1037 0 1038 }; 1039 if(reader->typ != R_GBOX) 1040 { 1041 if(in_list(setting, gbox_settings)) 1042 { return false; } 1043 } 1044 #endif 1045 1030 1046 return true; // Write the setting 1031 1047 } 1032 1033 1048 1034 1049 void chk_reader(char *token, char *value, struct s_reader *rdr) -
trunk/webif/readerconfig/readerconfig_hwreader.html
r11348 r11437 2 2 <TR><TD><A>MHz:</A></TD><TD><input name="mhz" class="short" type="text" maxlength="5" value="##MHZ##"> desired clockspeed or auto if autospeedbox is checked(auto only applies to smargo or dreambox yet)</TD></TR> 3 3 <TR><TD><A>Autospeed:</A></TD><TD><input name="autospeed" type="hidden" value="0"><input name="autospeed" type="checkbox" value="1" ##AUTOSPEEDCHECKED##><label>Sets mhz according to atr for smargo readers and dreambox internal readers. Default is checked</label></TD></TR> 4 <TR><TD><A>Use GPIO:</A></TD><TD><input name="use_gpio" type="hidden" value="0"><input name="use_gpio" type="checkbox" value="1" ##USE_GPIOCHECKED##><label>use GPIO as card detect/reset</label></TD></TR> 4 5 <TR><TD><A>Card MHz:</A></TD><TD><input name="cardmhz" class="short" type="text" maxlength="5" value="##CARDMHZ##"> Dreambox Mipsel: 2700, PPC: 3150, DM7025: 8300 ELSE set wanted cardinit speed. Default 357 </TD></TR> 5 6 ##TPLREADERCONFIGRSAKEY## -
trunk/webif/readerconfig/readerconfig_hwreader_smargo.html
r11349 r11437 1 1 <TR><TH COLSPAN="2">Reader specific settings for Smargo and Smartreader</TH></TR> 2 <TR><TD><A>Use GPIO:</A></TD><TD><input name="use_gpio" type="hidden" value="0"><input name="use_gpio" type="checkbox" value="1" ##USE_GPIOCHECKED##><label></label></TD></TR>3 2 <TR><TD><A>Smargopatch:</A></TD><TD><input name="smargopatch" type="hidden" value="0"><input name="smargopatch" type="checkbox" value="1" ##SMARGOPATCHCHECKED##><label></label></TD></TR>
Note:
See TracChangeset
for help on using the changeset viewer.