Enlightenment CVS committal

Author  : chaos
Project : e17
Module  : apps/evfs

Dir     : e17/apps/evfs/src/plugins


Modified Files:
        evfs_fs_bzip2.c evfs_fs_sftp.c 


Log Message:
* Slightly more debugging output in sftp, for now.  There are issues here
* Handle bzip2 errors more cleanly, and prevent endless loop lockup

===================================================================
RCS file: /cvs/e/e17/apps/evfs/src/plugins/evfs_fs_bzip2.c,v
retrieving revision 1.6
retrieving revision 1.7
diff -u -3 -r1.6 -r1.7
--- evfs_fs_bzip2.c     3 Feb 2006 23:12:13 -0000       1.6
+++ evfs_fs_bzip2.c     28 Mar 2006 07:42:33 -0000      1.7
@@ -56,6 +56,8 @@
 void evfs_dir_list(evfs_client * client, evfs_command * file);
 
 #define BZIP2_BUFFER 5000
+#define EVFS_BZ2_GOT_DATA -1
+#define EVFS_BZ2_ERROR -2
 
 Ecore_Hash *bzip_hash;
 typedef struct bzip2_file
@@ -150,11 +152,11 @@
    if (bfile->stream.avail_in > 0)
      {
         //printf("No need to read, got data already..\n");
-        return 0;
+        return EVFS_BZ2_GOT_DATA;
      }
 
    res = evfs_uri_read(client, ref->parent, bfile->buffer, BZIP2_BUFFER);
-   //printf("Read %d bytes at bzip2_read from fd %d using filename %s\n", res, 
ref->fd, ref->path);
+   /*printf("Read %d bytes at bzip2_read from fd %d using filename %s\n", res, 
ref->fd, ref->path);*/
 
    if (res > 0)
      {
@@ -162,9 +164,12 @@
         bfile->stream.next_in = (char *)bfile->buffer;
         bfile->stream.avail_in = res;
      }
-   else
-     {
+   else if (res == 0) {
+          //printf("res 0\n");
+          return 0;
+   } else {
         //printf("Res returnde an error: %d\n", res);
+       return EVFS_BZ2_ERROR;
         //exit(0);
      }
 
@@ -193,7 +198,10 @@
         bz_result = BZ2_bzDecompress(&bfile->stream);
         //printf("Avail_out goes to %d\n", bfile->stream.avail_out);
 
-        //printf ("             BZ Result is: %d\n", bz_result);
+        //printf ("             BZ Result is: %d -> %d\n", bz_result,res);
+
+       if (res == 0) 
+               return 0; /*No data left..*/
 
         if (bz_result == -1)
            break;
===================================================================
RCS file: /cvs/e/e17/apps/evfs/src/plugins/evfs_fs_sftp.c,v
retrieving revision 1.10
retrieving revision 1.11
diff -u -3 -r1.10 -r1.11
--- evfs_fs_sftp.c      26 Feb 2006 04:42:20 -0000      1.10
+++ evfs_fs_sftp.c      28 Mar 2006 07:42:33 -0000      1.11
@@ -562,9 +562,9 @@
        handle->sftp_handle= str;
        handle->sftp_handle_len = length;
 
-       //printf("  [*] Reading handle with id %d, length %d\n", id, length);
+       printf("  [*] Reading handle with id %d, length %d\n", id, length);
 
-       //printf("  [*] Writing handle to hash (%p) , with id %d\n", handle, 
id);
+       printf("  [*] Writing handle to hash (%p) , with id %d\n", handle, id);
        ecore_hash_set(conn->handle_hash, (int*)id, handle);
 }
 
@@ -611,10 +611,17 @@
 
 void sftp_handle_status(SftpConnection* conn, char** c) {
        int id;
+       int error_code;
+       char* error_message;
+       char* language_tag;
        SftpGenericHandle* rhandle;
+       int length;
        
        /*Read the identifier*/
        id = read_int32(c);
+       error_code = read_int32(c);
+       error_message = read_string(c, &length);
+       language_tag = read_string(c, &length);
 
        //printf("Got a status for id %d\n", id);
        rhandle = ecore_hash_get(conn->id_open_hash, (int*)id);
@@ -622,6 +629,8 @@
        //printf("Rhandle is %p\n", rhandle);
        if (rhandle) rhandle->status = STATUS_FINISHED;
 
+       printf("id: %d, error_code: %d, message: '%s', tag: '%s'\n", id, 
error_code, error_message, language_tag);
+
        ecore_hash_remove(conn->id_open_hash, (int*)id);
 }
 
@@ -718,32 +727,32 @@
 
    switch (sftp_type) {
           case SSH2_FXP_HANDLE:
-                  //printf ("  [*] TYPE: HANDLE: %d\n", sftp_type);
+                  printf ("  [*] TYPE: HANDLE: %d\n", sftp_type);
                   sftp_read_handle(conn, &c);
                   break;
           case SSH2_FXP_STATUS:
-                  //printf ("  [*] TYPE: STATUS: %d\n",sftp_type);
+                  printf ("  [*] TYPE: STATUS: %d\n",sftp_type);
                   sftp_handle_status(conn, &c);
                   break;
           case SSH2_FXP_ATTRS:
-                  //printf ("  [*] Received SSH ATTRIBUTES\n");
+                  printf ("  [*] Received SSH ATTRIBUTES\n");
                   sftp_handle_attr(conn, &c);
                   break;
           case SSH2_FXP_VERSION:
-                  //printf ("  [*] TYPE: VERSION: %d\n",sftp_type);
+                  printf ("  [*] TYPE: VERSION: %d\n",sftp_type);
                   conn->status = SFTP_CONNECTED;
                   goto FREE; /*Ignore the reply for now - FIXME*/
                   break;        
           case SSH2_FXP_NAME:
-                  //printf ("  [*] TYPE: NAME: %d\n", sftp_type);
+                  printf ("  [*] TYPE: NAME: %d\n", sftp_type);
                   sftp_read_names(conn, &c);
                   break;
           case SSH2_FXP_DATA:
-                  //printf("   [*] TYPE: DATA\n");
+                  printf("   [*] TYPE: DATA\n");
                   sftp_handle_data(conn, &c);
                   break;
           default:
-                  //printf ("  [*] TYPE: UNKNOWN: %d\n", sftp_type);
+                  printf ("  [*] TYPE: UNKNOWN: %d\n", sftp_type);
                   /*Out of sync? We have to leave..*/
                   goto FREE;
                   break;
@@ -927,6 +936,8 @@
        SftpGenericHandle* handle;
        SftpOpenHandle* ohandle;
 
+       printf("SFTP read\n");
+
 
        sftp_split_host_path(file->path, &host, &path);
        
@@ -969,6 +980,8 @@
                printf("Could not find open file handle\n");
        }
 
+       printf("Done\n");
+
 }
 
 int
@@ -979,6 +992,8 @@
        int rid;
        SftpOpenHandle* handle;
 
+       printf("******************** SFTP open file\n");
+
 
        sftp_split_host_path(file->path, &host, &path);
        
@@ -987,19 +1002,26 @@
                conn = sftp_connect(host);
        }
 
+       printf("Getting connection...\n");
        while (conn->status == SFTP_INIT) {
                ecore_main_loop_iterate();
                usleep(10);             
        }
+       printf("...got\n");
 
        rid = sftp_file_open(conn, path, 0);
 
        /*Wait till we have a handle*/
        /*FIXME - is there a better way of waiting-till-event in ecore?*/
+
+
+       printf("opening file...'%s'\n", file->path);
        while (! (handle = ecore_hash_get(conn->handle_hash, (int*)rid))) {
                ecore_main_loop_iterate();
                usleep(10);
        }
+       printf("opened.....\n");
+       
        file->fd = sftp_open_handle_get_next();
        handle->int_id = file->fd;
        handle->conn = conn;
@@ -1007,6 +1029,8 @@
 
        free(host);
        free(path);
+
+       printf("*********************** Opened\n");
 
        return file->fd;
 }




-------------------------------------------------------
This SF.Net email is sponsored by xPML, a groundbreaking scripting language
that extends applications into web and mobile media. Attend the live webcast
and join the prime developer group breaking into this new coding territory!
http://sel.as-us.falkag.net/sel?cmd=lnk&kid=110944&bid=241720&dat=121642
_______________________________________________
enlightenment-cvs mailing list
enlightenment-cvs@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/enlightenment-cvs

Reply via email to