[vlc-commits] ftp: add callback to parse server responses

Rémi Denis-Courmont git at videolan.org
Tue Aug 21 22:05:27 CEST 2012


vlc | branch: master | Rémi Denis-Courmont <remi at remlab.net> | Tue Aug 21 22:48:35 2012 +0300| [283669aa5a738317149f0b775e25b7d59cf7dad2] | committer: Rémi Denis-Courmont

ftp: add callback to parse server responses

> http://git.videolan.org/gitweb.cgi/vlc.git/?a=commit;h=283669aa5a738317149f0b775e25b7d59cf7dad2
---

 modules/access/ftp.c |   18 ++++++++++++++++--
 1 file changed, 16 insertions(+), 2 deletions(-)

diff --git a/modules/access/ftp.c b/modules/access/ftp.c
index 532cdd0..106cc89 100644
--- a/modules/access/ftp.c
+++ b/modules/access/ftp.c
@@ -159,8 +159,9 @@ static int ftp_SendCommand( vlc_object_t *obj, access_sys_t *sys,
 
  These strings are not part of the requests, except in the case \377\377,
  where the request contains one \377. */
-static int ftp_RecvCommand( vlc_object_t *obj, access_sys_t *sys,
-                            int *restrict codep, char **restrict strp )
+static int ftp_RecvAnswer( vlc_object_t *obj, access_sys_t *sys,
+                           int *restrict codep, char **restrict strp,
+                           void (*cb)(void *, const char *), void *opaque )
 {
     if( codep != NULL )
         *codep = 500;
@@ -198,6 +199,8 @@ static int ftp_RecvCommand( vlc_object_t *obj, access_sys_t *sys,
             }
 
             done = !strncmp( resp, line, 4 );
+            if( !done )
+                cb( opaque, line );
             free( line );
         }
         while( !done );
@@ -215,6 +218,17 @@ error:
     return -1;
 }
 
+static void DummyLine( void *data, const char *str )
+{
+    (void) data; (void) str;
+}
+
+static int ftp_RecvCommand( vlc_object_t *obj, access_sys_t *sys,
+                            int *restrict codep, char **restrict strp )
+{
+    return ftp_RecvAnswer( obj, sys, codep, strp, DummyLine, NULL );
+}
+
 static int ftp_StartStream( vlc_object_t *, access_sys_t *, uint64_t );
 static int ftp_StopStream ( vlc_object_t *, access_sys_t * );
 



More information about the vlc-commits mailing list