int capiconn_listen(capiconn_context *ctx, unsigned contr, unsigned cipmask, unsigned cipmask2) { capi_contr *card = findcontrbynumber(ctx, contr & 0x7f); if (card == 0) return CAPICONN_NO_CONTROLLER; card->cipmask = cipmask; /* 0x1FFF03FF */ card->cipmask2 = cipmask2; /* 0 */ send_listen(card); return CAPICONN_OK; }
void slave_end (uint8_t slave_cmd) { uint8_t i = 0; _current_state = RF_STATE_S_END; while (i < 30 && RF_CMD_ACK != received_command ) { received_command = send_listen ((RF_CMD)slave_cmd); i++; } if (RF_CMD_ACK == received_command) { go_wait(); } else { go_wait(); } }
static void up_callback(CALL *call,int cause,void *more,void *user) { SIGNALING_ENTITY *sig = user; int error; if (cause) { diag(COMPONENT,DIAG_ERROR,"up_callback: error (cause %d)",cause); return; } if (sig->command) system(sig->command); sig->s = un_attach(sig->path); if (sig->s < 0) diag(COMPONENT,DIAG_FATAL,"un_attach %s: %s",sig->path,strerror(errno)); send_listen(sig); error = sig_recv(sig,sig_check_listen); if (error) diag(COMPONENT,DIAG_FATAL,"listen failed: %s",strerror(error)); dsp_fd_add(sig->s,sig_data,sig); route_sig(sig,&sig->call->out.pvc,1); }
void slave_move_send (void) { uint8_t i = 0; _current_state = RF_STATE_S_MOVE_SEND; while (RF_CMD_NO_CMD == slave_move && i++ < 10) { if (no_move == recorded_move) { wait (10000); } else { switch (recorded_move) { case rock: slave_move = RF_CMD_ROCK; break; case paper: slave_move = RF_CMD_PAPER; break; case scissors: slave_move = RF_CMD_SCISSORS; break; } recorded_move = no_move; } } while (i < 30 && !((RF_CMD_MWIN | RF_CMD_MLOSE | RF_CMD_TIE) & received_command ) ) { received_command = send_listen (slave_move); i++; } if (((RF_CMD_MWIN | RF_CMD_MLOSE | RF_CMD_TIE) & received_command )) { slave_end (received_command); } else { go_wait(); } }
void master_sync_send (void) { uint8_t i = 0; recorded_move = no_move; master_move = RF_CMD_NO_CMD; latch_move (rock | paper | scissors); _current_state = RF_STATE_M_SYNC_SEND; while (i < 20 && RF_CMD_NO_CMD == received_command ) { received_command = send_listen (RF_CMD_REQ); i++; } if (RF_CMD_ACK == received_command) { master_move_wait(); } else { go_wait(); } }
void SOCKS5_Listener::read_ready() { char b1, b2; unsigned short port; unsigned long ip; switch (m_state){ case WaitAnswer: read(2); bIn >> b1 >> b2; if ((b1 != 0x05) || (b2 == '\xFF')) { error_state(ANSWER_ERROR, m_plugin->ProxyErr); return; } if (b2 == 0x02) { const char *user = getUser(); const char *pswd = getPassword(); bOut << (char)0x01 << (char)strlen(user) << user << (char)strlen(pswd) << pswd; m_state = WaitAuth; write(); return; } send_listen(); return; case WaitAuth: read(2); bIn >> b1 >> b2; if ((b1 != 0x01) || (b2 != 0x00)) { error_state(AUTH_ERROR, m_plugin->ProxyErr); return; } send_listen(); return; case WaitListen: read(10); bIn >> b1 >> b2; if ((b1 != 0x05) || (b2 != 0x00)) { error_state(AUTH_ERROR, m_plugin->ProxyErr); return; } bIn >> b1 >> b2; bIn >> ip; bIn >> port; m_state = Accept; if (notify) notify->bind_ready(port); return; case Accept: read(10); bIn >> b1 >> b2; if ((b1 != 0x05) || (b2 != 0x02)) { error_state("Bad accept code", 0); return; } bIn >> b1 >> b2; bIn >> ip; if (notify){ notify->accept(m_sock, ip); m_sock = NULL; }else{ error_state("Bad accept code", 0); return; } return; default: break; } }
void master_result_send (uint8_t slave_cmd) { uint8_t i = 0; RF_CMD result = RF_CMD_NO_CMD; _current_state = RF_STATE_M_RESULT_SEND; while (RF_CMD_NO_CMD == master_move && i++ < 10) { while (no_move == recorded_move); switch (recorded_move) { case rock: master_move = RF_CMD_ROCK; break; case paper: master_move = RF_CMD_PAPER; break; case scissors: master_move = RF_CMD_SCISSORS; break; default: master_move = RF_CMD_NO_CMD; } recorded_move = no_move; } switch (master_move) { case RF_CMD_ROCK: if ( RF_CMD_ROCK == (RF_CMD)slave_cmd) result = RF_CMD_TIE; else if ( RF_CMD_PAPER == (RF_CMD)slave_cmd) result = RF_CMD_MLOSE; else result = RF_CMD_MWIN; break; case RF_CMD_PAPER: if ( RF_CMD_PAPER == (RF_CMD)slave_cmd) result = RF_CMD_TIE; else if ( RF_CMD_SCISSORS == (RF_CMD)slave_cmd) result = RF_CMD_MLOSE; else result = RF_CMD_MWIN; break; case RF_CMD_SCISSORS: if ( RF_CMD_SCISSORS == (RF_CMD)slave_cmd) result = RF_CMD_TIE; else if ( RF_CMD_ROCK == (RF_CMD)slave_cmd) result = RF_CMD_MLOSE; else result = RF_CMD_MWIN; break; default: go_wait(); break; } i = 0; while (i < 30 && result != received_command ) { received_command = send_listen (result); i++; } if (result == received_command) { master_end(); } else { go_wait(); } }