# XByteField("TokenType", 0x21), FieldLenField("Length", None, fmt="<I", length_of="Language"), ByteField("Status", 0), StrLenField("Language", "", length_from=lambda x:x.Length), ] # http://web.cecs.pdx.edu/~kirkenda/tdsserver.html class TDS_TDS5_Query_Request(Packet): name = "TDS5 Query Request" fields_desc =[ PacketListField("Queries", None, TDS_Token) ] bind_bottom_up(TDS_Header, TDS_Prelogin_Request, Type=lambda x: x==0x12) bind_bottom_up(TDS_Header, TDS_Prelogin_Response, Type=lambda x: x==0x04) bind_bottom_up(TDS_Header, TDS_Login7_Request, Type=lambda x:x ==0x10) bind_bottom_up(TDS_Header, TDS_PreTDS7_Login_Request, Type=lambda x:x ==0x02) #bind_bottom_up(TDS_Header, TDS_Token_AllHeader, Type=lambda x:x == 0x01) bind_bottom_up(TDS_Header, TDS_SQLBatchData, Type=lambda x:x == 0x01) bind_bottom_up( TDS_Token, TDS_Token_Language, TokenType=lambda x:x == TDS_TOKEN_LANGUAGE) bind_bottom_up(TDS_Token, TDS_Token_ReturnStatus, TokenType=lambda x:x == TDS_TOKEN_RETURNSTATUS) bind_top_down(TDS_Header, TDS_Prelogin_Request, Type=0x12) bind_top_down(TDS_Header, TDS_Prelogin_Response, Type=0x04) bind_top_down(TDS_Header, TDS_Token, Status=0x01)
name = "TDS5 Token Language" fields_desc = [ # XByteField("TokenType", 0x21), FieldLenField("Length", None, fmt="<I", length_of="Language"), ByteField("Status", 0), StrLenField("Language", "", length_from=lambda x: x.Length), ] # http://web.cecs.pdx.edu/~kirkenda/tdsserver.html class TDS_TDS5_Query_Request(Packet): name = "TDS5 Query Request" fields_desc = [PacketListField("Queries", None, TDS_Token)] bind_bottom_up(TDS_Header, TDS_Prelogin_Request, Type=lambda x: x == 0x12) bind_bottom_up(TDS_Header, TDS_Prelogin_Response, Type=lambda x: x == 0x04) bind_bottom_up(TDS_Header, TDS_Login7_Request, Type=lambda x: x == 0x10) bind_bottom_up(TDS_Header, TDS_PreTDS7_Login_Request, Type=lambda x: x == 0x02) #bind_bottom_up(TDS_Header, TDS_Token_AllHeader, Type=lambda x:x == 0x01) bind_bottom_up(TDS_Header, TDS_SQLBatchData, Type=lambda x: x == 0x01) bind_bottom_up(TDS_Token, TDS_Token_Language, TokenType=lambda x: x == TDS_TOKEN_LANGUAGE) bind_bottom_up(TDS_Token, TDS_Token_ReturnStatus, TokenType=lambda x: x == TDS_TOKEN_RETURNSTATUS) bind_top_down(TDS_Header, TDS_Prelogin_Request, Type=0x12) bind_top_down(TDS_Header, TDS_Prelogin_Response, Type=0x04)
] class MySQL_COM_INIT_DB(Packet): name="MySQL Command INIT DB" fields_desc = [ StrField("Database",b"") ] class MySQL_COM_FIELD_LIST(Packet): name="MySQL Command FIELD LIST" fields_desc = [ StrNullField("Table",b""), StrField("Column",b"") ] bind_bottom_up( MySQL_Command_Header, MySQL_COM_QUERY, Command=lambda x: x==COM_QUERY) bind_bottom_up( MySQL_Command_Header, MySQL_COM_INIT_DB, Command=lambda x: x==COM_INIT_DB) bind_bottom_up(MySQL_Command_Header, MySQL_COM_FIELD_LIST, Command=lambda x: x==COM_FIELD_LIST) class MySQL_Result_OK(Packet): name="MySQL Result OK" fields_desc = [ ByteField("ResultMarker", 0x00), LengthCodedIntField("AffectedRows",0), LengthCodedIntField("InsertID",0), LEShortEnumField( "ServerStatus", SERVER_STATUS_AUTOCOMMIT, MySQL_Server_Status), LEShortField("WarningCount",0), StrField("Message",b'')
name = "MySQL Command QUERY" fields_desc = [StrNullField("Query", b"")] class MySQL_COM_INIT_DB(Packet): name = "MySQL Command INIT DB" fields_desc = [StrField("Database", b"")] class MySQL_COM_FIELD_LIST(Packet): name = "MySQL Command FIELD LIST" fields_desc = [StrNullField("Table", b""), StrField("Column", b"")] bind_bottom_up(MySQL_Command_Header, MySQL_COM_QUERY, Command=lambda x: x == COM_QUERY) bind_bottom_up(MySQL_Command_Header, MySQL_COM_INIT_DB, Command=lambda x: x == COM_INIT_DB) bind_bottom_up(MySQL_Command_Header, MySQL_COM_FIELD_LIST, Command=lambda x: x == COM_FIELD_LIST) class MySQL_Result_OK(Packet): name = "MySQL Result OK" fields_desc = [ ByteField("ResultMarker", 0x00), LengthCodedIntField("AffectedRows", 0), LengthCodedIntField("InsertID", 0),