Fix build warnings in sftp code.
git-svn-id: svn+ssh://svn.berlios.de/svnroot/repos/libssh/trunk@218 7dcaeef0-15fb-0310-b436-a5af3365683c
Этот коммит содержится в:
родитель
3991b3a3aa
Коммит
5f58fc773c
@ -331,6 +331,10 @@ int sftp_file_close(SFTP_FILE *file) SFTP_DEPRECATED;
|
||||
*/
|
||||
SFTP_FILE *sftp_open(SFTP_SESSION *session, const char *file, int access, mode_t mode);
|
||||
|
||||
void sftp_file_set_nonblocking(SFTP_FILE *handle);
|
||||
|
||||
void sftp_file_set_blocking(SFTP_FILE *handle);
|
||||
|
||||
/**
|
||||
* @brief Read from a file using an opened sftp file handle.
|
||||
*
|
||||
@ -375,7 +379,7 @@ ssize_t sftp_read(SFTP_FILE *file, void *buf, size_t count);
|
||||
* @see sftp_async_read()
|
||||
* @see sftp_open()
|
||||
*/
|
||||
u32 sftp_async_read_begin(SFTP_FILE *file, int len);
|
||||
u32 sftp_async_read_begin(SFTP_FILE *file, u32 len);
|
||||
|
||||
/**
|
||||
* @brief Wait for an asynchronous read to complete and save the data.
|
||||
@ -401,7 +405,7 @@ u32 sftp_async_read_begin(SFTP_FILE *file, int len);
|
||||
*
|
||||
* @see sftp_async_read_begin()
|
||||
*/
|
||||
int sftp_async_read(SFTP_FILE *file, void *data, int len, u32 id);
|
||||
int sftp_async_read(SFTP_FILE *file, void *data, u32 len, u32 id);
|
||||
|
||||
/**
|
||||
* @brief Write to a file using an opened sftp file handle.
|
||||
|
@ -69,10 +69,12 @@ SFTP_SESSION *sftp_server_new(SSH_SESSION *session, CHANNEL *chan){
|
||||
}
|
||||
|
||||
int sftp_server_init(SFTP_SESSION *sftp){
|
||||
sftp_enter_function();
|
||||
SFTP_PACKET *packet=sftp_packet_read(sftp);
|
||||
u32 version;
|
||||
SFTP_PACKET *packet;
|
||||
BUFFER *reply;
|
||||
u32 version;
|
||||
|
||||
sftp_enter_function();
|
||||
packet=sftp_packet_read(sftp);
|
||||
if(!packet){
|
||||
sftp_leave_function();
|
||||
return -1;
|
||||
@ -125,12 +127,14 @@ void sftp_free(SFTP_SESSION *sftp){
|
||||
}
|
||||
|
||||
int sftp_packet_write(SFTP_SESSION *sftp,u8 type, BUFFER *payload){
|
||||
u32 size;
|
||||
int size;
|
||||
buffer_add_data_begin(payload,&type,sizeof(u8));
|
||||
size=htonl(buffer_get_len(payload));
|
||||
buffer_add_data_begin(payload,&size,sizeof(u32));
|
||||
size=channel_write(sftp->channel,buffer_get(payload),buffer_get_len(payload));
|
||||
if(size != buffer_get_len(payload)){
|
||||
if (size < 0) {
|
||||
return -1;
|
||||
} else if((u32) size != buffer_get_len(payload)){
|
||||
ssh_say(1,"had to write %d bytes, wrote only %d\n",buffer_get_len(payload),size);
|
||||
}
|
||||
return size;
|
||||
@ -184,8 +188,10 @@ int sftp_get_error(SFTP_SESSION *sftp) {
|
||||
}
|
||||
|
||||
static SFTP_MESSAGE *sftp_message_new(SFTP_SESSION *sftp){
|
||||
sftp_enter_function();
|
||||
SFTP_MESSAGE *msg=malloc(sizeof(SFTP_MESSAGE));
|
||||
SFTP_MESSAGE *msg;
|
||||
sftp_enter_function();
|
||||
|
||||
msg=malloc(sizeof(SFTP_MESSAGE));
|
||||
memset(msg,0,sizeof(*msg));
|
||||
msg->payload=buffer_new();
|
||||
msg->sftp=sftp;
|
||||
@ -202,7 +208,7 @@ static void sftp_message_free(SFTP_MESSAGE *msg){
|
||||
sftp_leave_function();
|
||||
}
|
||||
|
||||
SFTP_MESSAGE *sftp_get_message(SFTP_PACKET *packet){
|
||||
static SFTP_MESSAGE *sftp_get_message(SFTP_PACKET *packet){
|
||||
SFTP_SESSION *sftp=packet->sftp;
|
||||
SFTP_MESSAGE *msg=sftp_message_new(sftp);
|
||||
sftp_enter_function();
|
||||
@ -228,7 +234,7 @@ SFTP_MESSAGE *sftp_get_message(SFTP_PACKET *packet){
|
||||
return msg;
|
||||
}
|
||||
|
||||
int sftp_read_and_dispatch(SFTP_SESSION *sftp){
|
||||
static int sftp_read_and_dispatch(SFTP_SESSION *sftp){
|
||||
SFTP_PACKET *packet;
|
||||
SFTP_MESSAGE *message=NULL;
|
||||
sftp_enter_function();
|
||||
@ -297,14 +303,14 @@ int sftp_init(SFTP_SESSION *sftp){
|
||||
return 0;
|
||||
}
|
||||
|
||||
REQUEST_QUEUE *request_queue_new(SFTP_MESSAGE *msg){
|
||||
static REQUEST_QUEUE *request_queue_new(SFTP_MESSAGE *msg){
|
||||
REQUEST_QUEUE *queue=malloc(sizeof(REQUEST_QUEUE));
|
||||
memset(queue,0,sizeof(REQUEST_QUEUE));
|
||||
queue->message=msg;
|
||||
return queue;
|
||||
}
|
||||
|
||||
void request_queue_free(REQUEST_QUEUE *queue){
|
||||
static void request_queue_free(REQUEST_QUEUE *queue){
|
||||
memset(queue,0,sizeof(*queue));
|
||||
free(queue);
|
||||
}
|
||||
@ -325,7 +331,7 @@ void sftp_enqueue(SFTP_SESSION *session, SFTP_MESSAGE *msg){
|
||||
}
|
||||
|
||||
/* pulls of a message from the queue based on the ID. returns null if no message has been found */
|
||||
SFTP_MESSAGE *sftp_dequeue(SFTP_SESSION *session, u32 id){
|
||||
static SFTP_MESSAGE *sftp_dequeue(SFTP_SESSION *session, u32 id){
|
||||
REQUEST_QUEUE *queue,*prev=NULL;
|
||||
SFTP_MESSAGE *msg;
|
||||
if(session->queue==NULL){
|
||||
@ -355,11 +361,11 @@ SFTP_MESSAGE *sftp_dequeue(SFTP_SESSION *session, u32 id){
|
||||
* Assigns a new sftp ID for new requests and assures there is no collision between them.
|
||||
* Returns a new ID ready to use in a request
|
||||
*/
|
||||
inline u32 sftp_get_new_id(SFTP_SESSION *session){
|
||||
static inline u32 sftp_get_new_id(SFTP_SESSION *session){
|
||||
return ++session->id_counter;
|
||||
}
|
||||
|
||||
STATUS_MESSAGE *parse_status_msg(SFTP_MESSAGE *msg){
|
||||
static STATUS_MESSAGE *parse_status_msg(SFTP_MESSAGE *msg){
|
||||
STATUS_MESSAGE *status;
|
||||
if(msg->packet_type != SSH_FXP_STATUS){
|
||||
ssh_set_error(msg->sftp->session, SSH_FATAL,"Not a ssh_fxp_status message passed in !");
|
||||
@ -384,7 +390,7 @@ STATUS_MESSAGE *parse_status_msg(SFTP_MESSAGE *msg){
|
||||
return status;
|
||||
}
|
||||
|
||||
void status_msg_free(STATUS_MESSAGE *status){
|
||||
static void status_msg_free(STATUS_MESSAGE *status){
|
||||
if(status->errormsg)
|
||||
free(status->errormsg);
|
||||
if(status->error)
|
||||
@ -396,7 +402,7 @@ void status_msg_free(STATUS_MESSAGE *status){
|
||||
free(status);
|
||||
}
|
||||
|
||||
SFTP_FILE *parse_handle_msg(SFTP_MESSAGE *msg){
|
||||
static SFTP_FILE *parse_handle_msg(SFTP_MESSAGE *msg){
|
||||
SFTP_FILE *file;
|
||||
if(msg->packet_type != SSH_FXP_HANDLE){
|
||||
ssh_set_error(msg->sftp->session,SSH_FATAL,"Not a ssh_fxp_handle message passed in !");
|
||||
@ -471,12 +477,17 @@ SFTP_DIR *sftp_opendir(SFTP_SESSION *sftp, const char *path){
|
||||
/* please excuse me for the inaccuracy of the code. it isn't my fault, it's sftp draft's one */
|
||||
/* this code is dead anyway ... */
|
||||
/* version 4 specific code */
|
||||
SFTP_ATTRIBUTES *sftp_parse_attr_4(SFTP_SESSION *sftp,BUFFER *buf,int expectnames){
|
||||
static SFTP_ATTRIBUTES *sftp_parse_attr_4(SFTP_SESSION *sftp, BUFFER *buf,
|
||||
int expectnames) {
|
||||
u32 flags=0;
|
||||
SFTP_ATTRIBUTES *attr=malloc(sizeof(SFTP_ATTRIBUTES));
|
||||
STRING *owner=NULL;
|
||||
STRING *group=NULL;
|
||||
int ok=0;
|
||||
|
||||
/* unused member variable */
|
||||
(void) expectnames;
|
||||
|
||||
memset(attr,0,sizeof(*attr));
|
||||
/* it isn't really a loop, but i use it because it's like a try..catch.. construction in C */
|
||||
do {
|
||||
@ -590,7 +601,8 @@ SFTP_ATTRIBUTES *sftp_parse_attr_4(SFTP_SESSION *sftp,BUFFER *buf,int expectname
|
||||
string extended_data
|
||||
... more extended data (extended_type - extended_data pairs),
|
||||
so that number of pairs equals extended_count */
|
||||
SFTP_ATTRIBUTES *sftp_parse_attr_3(SFTP_SESSION *sftp,BUFFER *buf,int expectname){
|
||||
static SFTP_ATTRIBUTES *sftp_parse_attr_3(SFTP_SESSION *sftp, BUFFER *buf,
|
||||
int expectname) {
|
||||
u32 flags=0;
|
||||
STRING *name;
|
||||
STRING *longname;
|
||||
@ -847,7 +859,7 @@ static int sftp_handle_close(SFTP_SESSION *sftp, STRING *handle){
|
||||
}
|
||||
|
||||
int sftp_file_close(SFTP_FILE *file) {
|
||||
sftp_close(file);
|
||||
return sftp_close(file);
|
||||
}
|
||||
|
||||
/* Close an open file handle. */
|
||||
@ -1030,7 +1042,7 @@ ssize_t sftp_read(SFTP_FILE *handle, void *buf, size_t count){
|
||||
}
|
||||
|
||||
/* Start an asynchronous read from a file using an opened sftp file handle. */
|
||||
u32 sftp_async_read_begin(SFTP_FILE *file, int len){
|
||||
u32 sftp_async_read_begin(SFTP_FILE *file, u32 len){
|
||||
SFTP_SESSION *sftp=file->sftp;
|
||||
BUFFER *buffer;
|
||||
u32 id;
|
||||
@ -1049,13 +1061,13 @@ u32 sftp_async_read_begin(SFTP_FILE *file, int len){
|
||||
}
|
||||
|
||||
/* Wait for an asynchronous read to complete and save the data. */
|
||||
int sftp_async_read(SFTP_FILE *file, void *data, int size, u32 id){
|
||||
int sftp_async_read(SFTP_FILE *file, void *data, u32 size, u32 id){
|
||||
SFTP_MESSAGE *msg=NULL;
|
||||
STATUS_MESSAGE *status;
|
||||
SFTP_SESSION *sftp=file->sftp;
|
||||
STRING *datastring;
|
||||
int err=0;
|
||||
int len;
|
||||
u32 len;
|
||||
sftp_enter_function();
|
||||
if(file->eof){
|
||||
sftp_leave_function();
|
||||
@ -1144,7 +1156,8 @@ ssize_t sftp_write(SFTP_FILE *file, const void *buf, size_t count){
|
||||
string_fill(datastring, buf, count);
|
||||
buffer_add_ssh_string(buffer,datastring);
|
||||
free(datastring);
|
||||
if(sftp_packet_write(file->sftp,SSH_FXP_WRITE,buffer) != buffer_get_len(buffer)){
|
||||
if((u32) sftp_packet_write(file->sftp,SSH_FXP_WRITE,buffer)
|
||||
!= buffer_get_len(buffer)) {
|
||||
ssh_say(1,"sftp_packet_write did not write as much data as expected\n");
|
||||
}
|
||||
buffer_free(buffer);
|
||||
@ -1543,7 +1556,7 @@ char *sftp_canonicalize_path(SFTP_SESSION *sftp, const char *path)
|
||||
return NULL;
|
||||
}
|
||||
|
||||
SFTP_ATTRIBUTES *sftp_xstat(SFTP_SESSION *sftp, const char *path, int param){
|
||||
static SFTP_ATTRIBUTES *sftp_xstat(SFTP_SESSION *sftp, const char *path, int param){
|
||||
u32 id=sftp_get_new_id(sftp);
|
||||
BUFFER *buffer=buffer_new();
|
||||
STRING *pathstr= string_from_char(path);
|
||||
|
Загрузка…
x
Ссылка в новой задаче
Block a user