modem: do not reject VJ option for Web TV
This commit is contained in:
parent
bbedcaa37b
commit
62a1e29670
|
@ -1338,6 +1338,8 @@ static void ppp_ipv4_conf(struct pico_device_ppp *ppp)
|
|||
|
||||
static void ipcp_send_nack(struct pico_device_ppp *ppp);
|
||||
|
||||
int dont_reject_opt_vj_hack = 0; // Hack to not reject the VJ option. Makes Web TV happy.
|
||||
|
||||
static void ipcp_process_in(struct pico_device_ppp *ppp, uint8_t *pkt, uint32_t len)
|
||||
{
|
||||
struct pico_ipcp_hdr *ih = (struct pico_ipcp_hdr *)pkt;
|
||||
|
@ -1345,7 +1347,7 @@ static void ipcp_process_in(struct pico_device_ppp *ppp, uint8_t *pkt, uint32_t
|
|||
int reject = 0;
|
||||
int nak = 0;
|
||||
while (p < pkt + len) {
|
||||
if (p[0] == IPCP_OPT_VJ) {
|
||||
if (p[0] == IPCP_OPT_VJ && dont_reject_opt_vj_hack == 0) {
|
||||
reject++;
|
||||
}
|
||||
|
||||
|
|
|
@ -228,6 +228,7 @@ static std::map<uint16_t, sock_t> tcp_listening_sockets;
|
|||
|
||||
static bool pico_stack_inited;
|
||||
static bool pico_thread_running = false;
|
||||
extern "C" int dont_reject_opt_vj_hack;
|
||||
|
||||
static void read_native_sockets();
|
||||
void get_host_by_name(const char *name, pico_ip4 dnsaddr);
|
||||
|
@ -736,6 +737,10 @@ static void *pico_thread_func(void *)
|
|||
}
|
||||
}
|
||||
}
|
||||
// Web TV requires the VJ compression option, which picotcp doesn't support.
|
||||
// This hack allows WebTV to connect although the correct fix would
|
||||
// be to implement VJ compression.
|
||||
dont_reject_opt_vj_hack = gameId == "6107117" ? 1 : 0;
|
||||
|
||||
// Initialize miniupnpc and map network ports
|
||||
MiniUPnP upnp;
|
||||
|
|
Loading…
Reference in New Issue