diff options
-rw-r--r-- | pttbbs/mbbsd/talk.c | 5 |
1 files changed, 5 insertions, 0 deletions
diff --git a/pttbbs/mbbsd/talk.c b/pttbbs/mbbsd/talk.c index 46ca6331..49f20e82 100644 --- a/pttbbs/mbbsd/talk.c +++ b/pttbbs/mbbsd/talk.c @@ -1150,6 +1150,11 @@ int make_connection_to_somebody(userinfo_t *uin, int timeout){ currutmp->sockactive = YEA; currutmp->sockaddr = server.sin_port; currutmp->destuid = uin->uid; + // WORKAROUND setutmpmode() checks currstat as cache of currutmp->mode. + // however if you invoke page -> rejected -> do something -> page again, + // the currstat=PAGE but currutmp->mode!=PAGE, and then the paging will fail. + // so, let's temporary break currstat here. + currstat = IDLE; setutmpmode(PAGE); uin->destuip = currutmp - &SHM->uinfo[0]; pid = uin->pid; |