int lalpm_trans_init ( lua_State *L ) { pmtransflag_t flags; int result; lua_getfield( L, -1, "flags" ); if ( ! lua_istable( L, -1 )) { lua_pushstring( L, "No 'flags' field was provided to trans_init!" ); lua_error( L ); } flags = lualpm_totransflags( L ); lua_pop( L, 1 ); /* Pop the flags table off the stack. */ /* Registering a nil value with these is alright. In fact it is better than running old callbacks. */ lua_getfield( L, -1, "eventscb" ); cb_register( L, &transcb_key_event ); lua_getfield( L, -1, "convcb" ); cb_register( L, &transcb_key_conv ); lua_getfield( L, -1, "progresscb" ); cb_register( L, &transcb_key_progress ); result = alpm_trans_init( flags, transcb_cfunc_event, transcb_cfunc_conv, transcb_cfunc_progress ); lua_pushnumber(L, result); return 1; }
void cb_sockRead(AuthServer_Private& client) { uint16_t msgId = DS::CryptRecvValue<uint16_t>(client.m_sock, client.m_crypt); switch (msgId) { case e_CliToAuth_PingRequest: cb_ping(client); break; case e_CliToAuth_ClientRegisterRequest: cb_register(client); break; case e_CliToAuth_AcctLoginRequest: cb_login(client); break; case e_CliToAuth_AcctSetPlayerRequest: cb_setPlayer(client); break; case e_CliToAuth_PlayerCreateRequest: cb_playerCreate(client); break; case e_CliToAuth_PlayerDeleteRequest: cb_playerDelete(client); break; case e_CliToAuth_VaultNodeCreate: cb_nodeCreate(client); break; case e_CliToAuth_VaultNodeFetch: cb_nodeFetch(client); break; case e_CliToAuth_VaultNodeSave: cb_nodeUpdate(client); break; case e_CliToAuth_VaultNodeAdd: cb_nodeRef(client); break; case e_CliToAuth_VaultNodeRemove: cb_nodeUnref(client); break; case e_CliToAuth_VaultFetchNodeRefs: cb_nodeTree(client); break; case e_CliToAuth_VaultInitAgeRequest: cb_ageCreate(client); break; case e_CliToAuth_VaultNodeFind: cb_nodeFind(client); break; case e_CliToAuth_VaultSendNode: cb_nodeSend(client); break; case e_CliToAuth_AgeRequest: cb_ageRequest(client, false); break; case e_CliToAuth_AgeRequestEx: cb_ageRequest(client, true); break; case e_CliToAuth_FileListRequest: cb_fileList(client); break; case e_CliToAuth_FileDownloadRequest: cb_downloadStart(client); break; case e_CliToAuth_FileDownloadChunkAck: cb_downloadNext(client); break; case e_CliToAuth_LogPythonTraceback: printf("[Auth] Got client python traceback:\n%s\n", DS::CryptRecvString(client.m_sock, client.m_crypt).c_str()); break; case e_CliToAuth_LogStackDump: printf("[Auth] Got client stackdump:\n%s\n", DS::CryptRecvString(client.m_sock, client.m_crypt).c_str()); break; case e_CliToAuth_LogClientDebuggerConnect: // Nobody cares break; case e_CliToAuth_ScoreCreate: cb_scoreCreate(client); break; case e_CliToAuth_ScoreGetScores: cb_scoreGetScores(client); break; case e_CliToAuth_ScoreAddPoints: cb_scoreAddPoints(client); break; case e_CliToAuth_ScoreTransferPoints: cb_scoreTransferPoints(client); break; case e_CliToAuth_ScoreSetPoints: cb_scoreSetPoints(client); break; case e_CliToAuth_ScoreGetHighScores: cb_scoreGetHighScores(client); break; case e_CliToAuth_GetPublicAgeList: cb_getPublicAges(client); break; case e_CliToAuth_SetAgePublic: cb_setAgePublic(client); break; case e_CliToAuth_ClientSetCCRLevel: case e_CliToAuth_AcctSetRolesRequest: case e_CliToAuth_AcctSetBillingTypeRequest: case e_CliToAuth_AcctActivateRequest: case e_CliToAuth_AcctCreateFromKeyRequest: case e_CliToAuth_VaultNodeDelete: case e_CliToAuth_UpgradeVisitorRequest: case e_CliToAuth_SetPlayerBanStatusRequest: case e_CliToAuth_KickPlayer: fprintf(stderr, "[Auth] Got unsupported client message %d from %s\n", msgId, DS::SockIpAddress(client.m_sock).c_str()); DS::CloseSock(client.m_sock); throw DS::SockHup(); default: /* Invalid message */ fprintf(stderr, "[Auth] Got invalid message ID %d from %s\n", msgId, DS::SockIpAddress(client.m_sock).c_str()); DS::CloseSock(client.m_sock); throw DS::SockHup(); } }