Re: Initial sync pickup
- From: Jason 'vanRijn' Kasper <vR movingparts net>
- To: "The PalmOS<tm> integration pacakge" <gnome-pilot-list gnome org>
- Subject: Re: Initial sync pickup
- Date: Thu, 27 May 2004 22:24:45 -0400
On Thu, 2004-05-27 at 04:39, Nigel Metheringham wrote:
> On Wed, 2004-05-26 at 22:59, Lars Weissflog wrote:
> > as Nigel has the very same problem with a Tungsten C and Philip with
> > another type of Clie, I still think it is _not_ entirely hardware
> > related; at least _not_ limited to my combination.
>
[snip]
>
> Has anyone got FC2 without major changes around the pilot stuff running
> with a USB palmOS device which picks up every time?
>
> Nigel.
well, it depends on what you mean by "major changes". =:) But I am
running FC2 and I have a USB Clie NX70V and it works perfectly,
flawlessly, beautifully, gloriously, and (almost) every time. =:)
That's not to say it doesn't crash occasionally, but it's MUCH more
stable than it has been in the past, due to the below (not-so-major?)
changes.
- I have recompiled gnome-pilot, gnome-pilot-conduits, and pilot-link
with the attached patches. These came from Matt Davey in August, 2003,
and David A. Desrosiers.
- I have an IBM Thinkpad laptop, which has issues with USB when
suspending/resuming, etc., so I have added 2 scripts
to my /etc/sysconfig/apm-scripts/ directory and have them being called
appropriately from /etc/sysconfig/apm-scripts/apmscript, which kill
gpilotd and rmmod uhci-hcd on suspend and insmod uhci-hcd and visor on
resume.
- from the gnome-pilot side of things, I have /dev/ttyUSB1,
/dev/ttyUSB3, and /dev/ttyUSB5 listed as devices for gnome-pilot, all
set to 115200 speed and 2 seconds for timeout. And the permissions on
those devices are 666 (yeah, yeah, I know, not secure, but it's a
laptop).
Anyway, hopefully some of this helps you. =:) With all of these things
done, like I said, my syncing works perfectly and just about every
time. VERY occasionally, gnome-pilot fails to connect to the Clie
successfully, but normally, if I let the Clie time out (or alternately
kill gpilotd with extreme prejudice), the next and subsequent syncs all
work.
--
,-----------------------------------------------------------------//
| Jason 'vanRijn' Kasper :: Numbers 6:22-26
`
| All brontosauruses are thin at one end, much MUCH thicker
| in the middle, and then thin again at the far end. That is
| the theory that I have and which is mine, and what it is too.
,
| bash$ :(){ :|:&};:
`----------------------//
diff -Naur gnome-pilot-2.0.10-dist/gpilotd/gnome-pilot-conduit-standard-abs.c gnome-pilot-2.0.10/gpilotd/gnome-pilot-conduit-standard-abs.c
--- gnome-pilot-2.0.10-dist/gpilotd/gnome-pilot-conduit-standard-abs.c 2002-11-22 16:03:59.000000000 +0000
+++ gnome-pilot-2.0.10/gpilotd/gnome-pilot-conduit-standard-abs.c 2003-08-28 08:42:02.000000000 +0000
@@ -28,6 +28,7 @@
#include <pi-socket.h>
#include <pi-dlp.h>
#include "gnome-pilot-conduit-standard-abs.h"
+#include "gpmarshal.h"
#include "manager.h"
enum {
@@ -142,87 +143,6 @@
return retval;
}
-/* We have a bunch of marshalling functions that we need to declare.
- * We do so here */
-typedef gint (*GtkSignal_INT__POINTER_POINTER) (GtkObject * object,
- gpointer arg1,
- gpointer arg2,
- gpointer user_data);
-static void
-gtk_marshal_INT__POINTER_POINTER (GtkObject * object,
- GtkSignalFunc func,
- gpointer func_data,
- GtkArg * args)
-{
- GtkSignal_INT__POINTER_POINTER rfunc;
- gint *return_val;
- return_val = GTK_RETLOC_INT (args[2]);
- rfunc = (GtkSignal_INT__POINTER_POINTER) func;
- *return_val = (*rfunc) (object,
- GTK_VALUE_POINTER (args[0]),
- GTK_VALUE_POINTER (args[1]),
- func_data);
-}
-
-typedef gint (*GtkSignal_INT__POINTER_INT) (GtkObject * object,
- gpointer arg1,
- gint arg2,
- gpointer user_data);
-static void
-gtk_marshal_INT__POINTER_INT (GtkObject * object,
- GtkSignalFunc func,
- gpointer func_data,
- GtkArg * args)
-{
- GtkSignal_INT__POINTER_INT rfunc;
- gint *return_val;
- return_val = GTK_RETLOC_INT (args[2]);
- rfunc = (GtkSignal_INT__POINTER_INT) func;
- *return_val = (*rfunc) (object,
- GTK_VALUE_POINTER (args[0]),
- GTK_VALUE_INT (args[1]),
- func_data);
-}
-
-typedef gint (*GtkSignal_INT__POINTER_INT_INT) (GtkObject * object,
- gpointer arg1,
- gint arg2,
- gint arg3,
- gpointer user_data);
-static void
-gtk_marshal_INT__POINTER_INT_INT (GtkObject * object,
- GtkSignalFunc func,
- gpointer func_data,
- GtkArg * args)
-{
- GtkSignal_INT__POINTER_INT_INT rfunc;
- gint *return_val;
- return_val = GTK_RETLOC_INT (args[3]);
- rfunc = (GtkSignal_INT__POINTER_INT_INT) func;
- *return_val = (*rfunc) (object,
- GTK_VALUE_POINTER (args[0]),
- GTK_VALUE_INT (args[1]),
- GTK_VALUE_INT (args[2]),
- func_data);
-}
-
-
-typedef gint (*GtkSignal_INT__NONE) (GtkObject * object,
- gpointer user_data);
-static void
-gtk_marshal_INT__NONE (GtkObject * object,
- GtkSignalFunc func,
- gpointer func_data,
- GtkArg * args)
-{
- GtkSignal_INT__NONE rfunc;
- gint *return_val;
- return_val = GTK_RETLOC_INT (args[0]);
- rfunc = (GtkSignal_INT__NONE) func;
- *return_val = (*rfunc) (object,
- func_data);
-}
-
static void
gnome_pilot_conduit_standard_abs_class_init (GnomePilotConduitStandardAbsClass *klass)
{
@@ -239,7 +159,7 @@
GTK_RUN_LAST,
GTK_CLASS_TYPE (object_class),
GTK_SIGNAL_OFFSET (GnomePilotConduitStandardAbsClass, match_record),
- gtk_marshal_INT__POINTER_POINTER,
+ gp_marshal_INT__POINTER_POINTER,
GTK_TYPE_INT, 2, GTK_TYPE_POINTER, GTK_TYPE_POINTER);
pilot_conduit_standard_abs_signals[FREE_MATCH] =
@@ -247,7 +167,7 @@
GTK_RUN_LAST,
GTK_CLASS_TYPE (object_class),
GTK_SIGNAL_OFFSET (GnomePilotConduitStandardAbsClass, free_match),
- gtk_marshal_INT__POINTER,
+ gp_marshal_INT__POINTER,
GTK_TYPE_INT, 1, GTK_TYPE_POINTER);
pilot_conduit_standard_abs_signals[ARCHIVE_LOCAL] =
@@ -255,7 +175,7 @@
GTK_RUN_LAST,
GTK_CLASS_TYPE (object_class),
GTK_SIGNAL_OFFSET (GnomePilotConduitStandardAbsClass, archive_local),
- gtk_marshal_INT__POINTER,
+ gp_marshal_INT__POINTER,
GTK_TYPE_INT, 1, GTK_TYPE_POINTER);
pilot_conduit_standard_abs_signals[ARCHIVE_REMOTE] =
@@ -263,7 +183,7 @@
GTK_RUN_LAST,
GTK_CLASS_TYPE (object_class),
GTK_SIGNAL_OFFSET (GnomePilotConduitStandardAbsClass, archive_remote),
- gtk_marshal_INT__POINTER_POINTER,
+ gp_marshal_INT__POINTER_POINTER,
GTK_TYPE_INT, 2, GTK_TYPE_POINTER, GTK_TYPE_POINTER);
pilot_conduit_standard_abs_signals[STORE_REMOTE] =
@@ -271,7 +191,7 @@
GTK_RUN_LAST,
GTK_CLASS_TYPE (object_class),
GTK_SIGNAL_OFFSET (GnomePilotConduitStandardAbsClass, store_remote),
- gtk_marshal_INT__POINTER,
+ gp_marshal_INT__POINTER,
GTK_TYPE_INT, 1, GTK_TYPE_POINTER);
pilot_conduit_standard_abs_signals[ITERATE] =
@@ -279,7 +199,7 @@
GTK_RUN_LAST,
GTK_CLASS_TYPE (object_class),
GTK_SIGNAL_OFFSET (GnomePilotConduitStandardAbsClass, iterate),
- gtk_marshal_INT__POINTER,
+ gp_marshal_INT__POINTER,
GTK_TYPE_INT, 1, GTK_TYPE_POINTER);
pilot_conduit_standard_abs_signals[ITERATE_SPECIFIC] =
@@ -287,7 +207,7 @@
GTK_RUN_LAST,
GTK_CLASS_TYPE (object_class),
GTK_SIGNAL_OFFSET (GnomePilotConduitStandardAbsClass, iterate_specific),
- gtk_marshal_INT__POINTER_INT_INT,
+ gp_marshal_INT__POINTER_INT_INT,
GTK_TYPE_INT, 3, GTK_TYPE_POINTER, GTK_TYPE_INT, GTK_TYPE_INT);
pilot_conduit_standard_abs_signals[PURGE] =
@@ -295,7 +215,7 @@
GTK_RUN_LAST,
GTK_CLASS_TYPE (object_class),
GTK_SIGNAL_OFFSET (GnomePilotConduitStandardAbsClass, purge),
- gtk_marshal_INT__NONE,
+ gp_marshal_INT__NONE,
GTK_TYPE_INT, 0);
pilot_conduit_standard_abs_signals[SET_STATUS] =
@@ -303,7 +223,7 @@
GTK_RUN_LAST,
GTK_CLASS_TYPE (object_class),
GTK_SIGNAL_OFFSET (GnomePilotConduitStandardAbsClass, set_status),
- gtk_marshal_INT__POINTER_INT,
+ gp_marshal_INT__POINTER_INT,
GTK_TYPE_INT, 2, GTK_TYPE_POINTER, GTK_TYPE_INT);
pilot_conduit_standard_abs_signals[SET_PILOT_ID] =
@@ -311,7 +231,7 @@
GTK_RUN_LAST,
GTK_CLASS_TYPE (object_class),
GTK_SIGNAL_OFFSET (GnomePilotConduitStandardAbsClass, set_pilot_id),
- gtk_marshal_INT__POINTER_INT,
+ gp_marshal_INT__POINTER_INT,
GTK_TYPE_INT, 2, GTK_TYPE_POINTER, GTK_TYPE_INT);
pilot_conduit_standard_abs_signals[COMPARE] =
@@ -319,7 +239,7 @@
GTK_RUN_LAST,
GTK_CLASS_TYPE (object_class),
GTK_SIGNAL_OFFSET (GnomePilotConduitStandardAbsClass, compare),
- gtk_marshal_INT__POINTER_POINTER,
+ gp_marshal_INT__POINTER_POINTER,
GTK_TYPE_INT, 2, GTK_TYPE_POINTER, GTK_TYPE_POINTER);
pilot_conduit_standard_abs_signals[COMPARE_BACKUP] =
@@ -327,7 +247,7 @@
GTK_RUN_LAST,
GTK_CLASS_TYPE (object_class),
GTK_SIGNAL_OFFSET (GnomePilotConduitStandardAbsClass, compare_backup),
- gtk_marshal_INT__POINTER_POINTER,
+ gp_marshal_INT__POINTER_POINTER,
GTK_TYPE_INT, 2, GTK_TYPE_POINTER, GTK_TYPE_POINTER);
pilot_conduit_standard_abs_signals[FREE_TRANSMIT] =
@@ -335,7 +255,7 @@
GTK_RUN_LAST,
GTK_CLASS_TYPE (object_class),
GTK_SIGNAL_OFFSET (GnomePilotConduitStandardAbsClass, free_transmit),
- gtk_marshal_INT__POINTER_POINTER,
+ gp_marshal_INT__POINTER_POINTER,
GTK_TYPE_INT, 2, GTK_TYPE_POINTER, GTK_TYPE_POINTER);
pilot_conduit_standard_abs_signals[DELETE_ALL] =
@@ -343,7 +263,7 @@
GTK_RUN_LAST,
GTK_CLASS_TYPE (object_class),
GTK_SIGNAL_OFFSET (GnomePilotConduitStandardAbsClass, delete_all),
- gtk_marshal_INT__NONE,
+ gp_marshal_INT__NONE,
GTK_TYPE_INT, 0);
pilot_conduit_standard_abs_signals[TRANSMIT] =
@@ -351,7 +271,7 @@
GTK_RUN_LAST,
GTK_CLASS_TYPE (object_class),
GTK_SIGNAL_OFFSET (GnomePilotConduitStandardAbsClass, transmit),
- gtk_marshal_INT__POINTER_POINTER,
+ gp_marshal_INT__POINTER_POINTER,
GTK_TYPE_INT, 2, GTK_TYPE_POINTER, GTK_TYPE_POINTER);
pilot_conduit_standard_abs_signals[PRE_SYNC] =
@@ -359,7 +279,7 @@
GTK_RUN_LAST,
GTK_CLASS_TYPE (object_class),
GTK_SIGNAL_OFFSET (GnomePilotConduitStandardAbsClass, pre_sync),
- gtk_marshal_INT__POINTER,
+ gp_marshal_INT__POINTER,
GTK_TYPE_INT, 1, GTK_TYPE_POINTER);
conduit_standard_class->copy_to_pilot = gnome_pilot_conduit_standard_real_copy_to_pilot;
diff -Naur gnome-pilot-2.0.10-dist/gpilotd/gpmarshal.c gnome-pilot-2.0.10/gpilotd/gpmarshal.c
--- gnome-pilot-2.0.10-dist/gpilotd/gpmarshal.c 2003-07-14 17:32:23.000000000 +0000
+++ gnome-pilot-2.0.10/gpilotd/gpmarshal.c 2003-08-28 08:41:28.000000000 +0000
@@ -208,3 +208,122 @@
g_value_set_int (return_value, v_return);
}
+/* INT:POINTER,INT,INT (./gpmarshal.list:5) */
+void
+gp_marshal_INT__POINTER_INT_INT (GClosure *closure,
+ GValue *return_value,
+ guint n_param_values,
+ const GValue *param_values,
+ gpointer invocation_hint,
+ gpointer marshal_data)
+{
+ typedef gint (*GMarshalFunc_INT__POINTER_INT_INT) (gpointer data1,
+ gpointer arg_1,
+ gint arg_2,
+ gint arg_3,
+ gpointer data2);
+ register GMarshalFunc_INT__POINTER_INT_INT callback;
+ register GCClosure *cc = (GCClosure*) closure;
+ register gpointer data1, data2;
+ gint v_return;
+
+ g_return_if_fail (return_value != NULL);
+ g_return_if_fail (n_param_values == 4);
+
+ if (G_CCLOSURE_SWAP_DATA (closure))
+ {
+ data1 = closure->data;
+ data2 = g_value_peek_pointer (param_values + 0);
+ }
+ else
+ {
+ data1 = g_value_peek_pointer (param_values + 0);
+ data2 = closure->data;
+ }
+ callback = (GMarshalFunc_INT__POINTER_INT_INT) (marshal_data ? marshal_data : cc->callback);
+
+ v_return = callback (data1,
+ g_marshal_value_peek_pointer (param_values + 1),
+ g_marshal_value_peek_int (param_values + 2),
+ g_marshal_value_peek_int (param_values + 3),
+ data2);
+
+ g_value_set_int (return_value, v_return);
+}
+
+/* INT:POINTER (./gpmarshal.list:6) */
+void
+gp_marshal_INT__POINTER (GClosure *closure,
+ GValue *return_value,
+ guint n_param_values,
+ const GValue *param_values,
+ gpointer invocation_hint,
+ gpointer marshal_data)
+{
+ typedef gint (*GMarshalFunc_INT__POINTER) (gpointer data1,
+ gpointer arg_1,
+ gpointer data2);
+ register GMarshalFunc_INT__POINTER callback;
+ register GCClosure *cc = (GCClosure*) closure;
+ register gpointer data1, data2;
+ gint v_return;
+
+ g_return_if_fail (return_value != NULL);
+ g_return_if_fail (n_param_values == 2);
+
+ if (G_CCLOSURE_SWAP_DATA (closure))
+ {
+ data1 = closure->data;
+ data2 = g_value_peek_pointer (param_values + 0);
+ }
+ else
+ {
+ data1 = g_value_peek_pointer (param_values + 0);
+ data2 = closure->data;
+ }
+ callback = (GMarshalFunc_INT__POINTER) (marshal_data ? marshal_data : cc->callback);
+
+ v_return = callback (data1,
+ g_marshal_value_peek_pointer (param_values + 1),
+ data2);
+
+ g_value_set_int (return_value, v_return);
+}
+
+/* INT:NONE (./gpmarshal.list:7) */
+void
+gp_marshal_INT__VOID (GClosure *closure,
+ GValue *return_value,
+ guint n_param_values,
+ const GValue *param_values,
+ gpointer invocation_hint,
+ gpointer marshal_data)
+{
+ typedef gint (*GMarshalFunc_INT__VOID) (gpointer data1,
+ gpointer data2);
+ register GMarshalFunc_INT__VOID callback;
+ register GCClosure *cc = (GCClosure*) closure;
+ register gpointer data1, data2;
+ gint v_return;
+
+ g_return_if_fail (return_value != NULL);
+ g_return_if_fail (n_param_values == 1);
+
+ if (G_CCLOSURE_SWAP_DATA (closure))
+ {
+ data1 = closure->data;
+ data2 = g_value_peek_pointer (param_values + 0);
+ }
+ else
+ {
+ data1 = g_value_peek_pointer (param_values + 0);
+ data2 = closure->data;
+ }
+ callback = (GMarshalFunc_INT__VOID) (marshal_data ? marshal_data : cc->callback);
+
+ v_return = callback (data1,
+ data2);
+
+ g_value_set_int (return_value, v_return);
+}
+
diff -Naur gnome-pilot-2.0.10-dist/gpilotd/gpmarshal.h gnome-pilot-2.0.10/gpilotd/gpmarshal.h
--- gnome-pilot-2.0.10-dist/gpilotd/gpmarshal.h 2003-07-14 17:32:23.000000000 +0000
+++ gnome-pilot-2.0.10/gpilotd/gpmarshal.h 2003-08-28 08:41:28.000000000 +0000
@@ -6,7 +6,7 @@
G_BEGIN_DECLS
-/* VOID:INT,POINTER (./gpmarshal.list:1) */
+/* VOID:INT,POINTER (gpmarshal.list:1) */
extern void gp_marshal_VOID__INT_POINTER (GClosure *closure,
GValue *return_value,
guint n_param_values,
@@ -14,7 +14,7 @@
gpointer invocation_hint,
gpointer marshal_data);
-/* INT:POINTER,INT (./gpmarshal.list:2) */
+/* INT:POINTER,INT (gpmarshal.list:2) */
extern void gp_marshal_INT__POINTER_INT (GClosure *closure,
GValue *return_value,
guint n_param_values,
@@ -22,7 +22,7 @@
gpointer invocation_hint,
gpointer marshal_data);
-/* INT:POINTER,POINTER (./gpmarshal.list:3) */
+/* INT:POINTER,POINTER (gpmarshal.list:3) */
extern void gp_marshal_INT__POINTER_POINTER (GClosure *closure,
GValue *return_value,
guint n_param_values,
@@ -30,7 +30,7 @@
gpointer invocation_hint,
gpointer marshal_data);
-/* INT:POINTER,BOOL (./gpmarshal.list:4) */
+/* INT:POINTER,BOOL (gpmarshal.list:4) */
extern void gp_marshal_INT__POINTER_BOOLEAN (GClosure *closure,
GValue *return_value,
guint n_param_values,
@@ -39,6 +39,31 @@
gpointer marshal_data);
#define gp_marshal_INT__POINTER_BOOL gp_marshal_INT__POINTER_BOOLEAN
+/* INT:POINTER,INT,INT (gpmarshal.list:5) */
+extern void gp_marshal_INT__POINTER_INT_INT (GClosure *closure,
+ GValue *return_value,
+ guint n_param_values,
+ const GValue *param_values,
+ gpointer invocation_hint,
+ gpointer marshal_data);
+
+/* INT:POINTER (gpmarshal.list:6) */
+extern void gp_marshal_INT__POINTER (GClosure *closure,
+ GValue *return_value,
+ guint n_param_values,
+ const GValue *param_values,
+ gpointer invocation_hint,
+ gpointer marshal_data);
+
+/* INT:NONE (gpmarshal.list:7) */
+extern void gp_marshal_INT__VOID (GClosure *closure,
+ GValue *return_value,
+ guint n_param_values,
+ const GValue *param_values,
+ gpointer invocation_hint,
+ gpointer marshal_data);
+#define gp_marshal_INT__NONE gp_marshal_INT__VOID
+
G_END_DECLS
#endif /* __gp_marshal_MARSHAL_H__ */
diff -Naur gnome-pilot-2.0.10-dist/gpilotd/gpmarshal.list gnome-pilot-2.0.10/gpilotd/gpmarshal.list
--- gnome-pilot-2.0.10-dist/gpilotd/gpmarshal.list 2002-12-03 22:57:12.000000000 +0000
+++ gnome-pilot-2.0.10/gpilotd/gpmarshal.list 2003-08-28 08:41:28.000000000 +0000
@@ -2,3 +2,6 @@
INT:POINTER,INT
INT:POINTER,POINTER
INT:POINTER,BOOL
+INT:POINTER,INT,INT
+INT:POINTER
+INT:NONE
--- ../orig/gnome-pilot-conduits-2.0.10/memo_file/memo_file_conduit.c 2003-07-03 17:04:22.000000000 -0400
+++ memo_file/memo_file_conduit.c 2003-08-27 00:33:35.000000000 -0400
@@ -725,7 +725,7 @@ free_loadinfo_foreach (LoadInfo *info, g
}
/** loads the records into the abs structure */
-static gboolean
+static void
load_records (GnomePilotConduitStandardAbs *abs)
{
FILE *idfile;
@@ -743,12 +743,12 @@ load_records (GnomePilotConduitStandardA
if ((dir=opendir (GET_CONDUIT_CFG (abs)->dir))==NULL) {
LOG ("load_records cannot open %s", GET_CONDUIT_CFG (abs)->dir);
- return FALSE;
+ return;
}
if ((categories = load_categories (abs))==NULL) {
LOG ("no categories, no records");
closedir (dir);
- return FALSE;
+ return;
}
while ((de=readdir (dir))) {
GHashTable *loadinfo;
@@ -857,7 +857,7 @@ load_records (GnomePilotConduitStandardA
LOG ("records: total = %d updated = %d new = %d deleted = %d", total, updated, newrecs, deleted);
- return TRUE;
+ return;
}
@@ -886,8 +886,7 @@ pre_sync (GnomePilotConduit *c, GnomePil
return -1;
}
- if (!load_records ((GnomePilotConduitStandardAbs*)c))
- return -1;
+ load_records ((GnomePilotConduitStandardAbs*)c);
/* If local store is empty force the slow sync. */
if (g_list_length (GET_CONDUIT_DATA (c)->records)==0){
diff -pruN pilot-link-0.11.8.original/include/pi-dlp.h pilot-link-0.11.8/include/pi-dlp.h
--- pilot-link-0.11.8.original/include/pi-dlp.h 2003-06-30 14:41:05.000000000 -0400
+++ pilot-link-0.11.8/include/pi-dlp.h 2004-03-04 10:25:55.442007368 -0500
@@ -42,7 +42,7 @@ extern "C" {
#define PI_DLP_ARG_FIRST_ID 0x20
-#define DLP_BUF_SIZE 0xffff
+#define DLP_BUF_SIZE 0x1ffff
/* Note: All of these functions return an integer that if greater
then zero is the number of bytes in the result, zero if there was
diff -pruN pilot-link-0.11.8.original/libpisock/dlp.c pilot-link-0.11.8/libpisock/dlp.c
--- pilot-link-0.11.8.original/libpisock/dlp.c 2003-06-17 16:26:49.000000000 -0400
+++ pilot-link-0.11.8/libpisock/dlp.c 2004-03-04 10:26:13.105322136 -0500
@@ -85,7 +85,6 @@
#define set_date(ptr,val) (dlp_htopdate((val),(ptr)))
-#define DLP_BUF_SIZE 0xffff
#define DLP_REQUEST_DATA(req, arg, offset) &req->argv[arg]->data[offset]
#define DLP_RESPONSE_DATA(res, arg, offset) &res->argv[arg]->data[offset]
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]