* thread safe version of communication
authorMichal Voců <michal@ruk.cuni.cz>
Mon, 12 Sep 2005 14:16:52 +0000 (14:16 +0000)
committerMichal Voců <michal@ruk.cuni.cz>
Mon, 12 Sep 2005 14:16:52 +0000 (14:16 +0000)
org.glite.lb.common/interface/il_msg.h
org.glite.lb.common/src/il_msg.c

index cb839f8..a2e33a4 100644 (file)
@@ -33,6 +33,8 @@ int encode_il_msg(char **, const char *);
 int encode_il_reply(char **, int, int, const char *);
 int decode_il_msg(char **, const char *);
 int decode_il_reply(int *, int *, char **, const char *);
-int read_il_data(char **,  int (*)(char *, const int));
+int read_il_data(void *user_data,
+                char **buffer,  
+                int (*reader)(void *user_data, char *buffer, const int));
 
 #endif
index 8c6e973..dc07813 100644 (file)
@@ -105,14 +105,15 @@ decode_il_reply(int *maj, int *min, char **err, const char * buf)
 
 
 int
-read_il_data(char **buffer, 
-            int (*reader)(char *, const int))
+read_il_data(void *user_data,
+            char **buffer, 
+            int (*reader)(void *, char *, const int))
 {
   char buf[17];
   int ret, len;
 
   /* read 17 byte header */
-  len = (*reader)(buf, 17);
+  len = (*reader)(user_data, buf, 17);
   if(len < 0) {
     goto err;
   }
@@ -130,7 +131,7 @@ read_il_data(char **buffer,
   }
 
   /* read body */
-  ret = (*reader)(*buffer, len);
+  ret = (*reader)(user_data, *buffer, len);
   if(ret < 0) {
     free(*buffer);
     *buffer = NULL;