00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022 #ifndef BUFFER_H_
00023 #define BUFFER_H_
00024
00025
00026 struct ssh_buffer_struct {
00027 char *data;
00028 uint32_t used;
00029 uint32_t allocated;
00030 uint32_t pos;
00031 };
00032
00033 int buffer_add_ssh_string(ssh_buffer buffer, ssh_string string);
00034 int buffer_add_u8(ssh_buffer buffer, uint8_t data);
00035 int buffer_add_u16(ssh_buffer buffer, uint16_t data);
00036 int buffer_add_u32(ssh_buffer buffer, uint32_t data);
00037 int buffer_add_u64(ssh_buffer buffer, uint64_t data);
00038 int buffer_add_data(ssh_buffer buffer, const void *data, uint32_t len);
00039 int buffer_prepend_data(ssh_buffer buffer, const void *data, uint32_t len);
00040 int buffer_add_buffer(ssh_buffer buffer, ssh_buffer source);
00041 int buffer_reinit(ssh_buffer buffer);
00042
00043
00044 void *buffer_get_rest(ssh_buffer buffer);
00045
00046 uint32_t buffer_get_rest_len(ssh_buffer buffer);
00047
00048
00049 int buffer_get_u8(ssh_buffer buffer, uint8_t *data);
00050 int buffer_get_u32(ssh_buffer buffer, uint32_t *data);
00051 int buffer_get_u64(ssh_buffer buffer, uint64_t *data);
00052
00053 uint32_t buffer_get_data(ssh_buffer buffer, void *data, uint32_t requestedlen);
00054
00055 ssh_string buffer_get_ssh_string(ssh_buffer buffer);
00056
00057 ssh_string buffer_get_mpint(ssh_buffer buffer);
00058
00059 uint32_t buffer_pass_bytes_end(ssh_buffer buffer, uint32_t len);
00060 uint32_t buffer_pass_bytes(ssh_buffer buffer, uint32_t len);
00061
00062 #endif