PATCH: rename int64 to gw_int64 (was PATCH: only typedef int64 if type does not already exist)

"Bostock James" <[email protected]>
Newsgroups gmane.comp.mobile.kannel.devel
Message-ID <84E219D8B81E5F4688C4A8992426CD830137D54A@fr-par-mail01.comverse.com>
Hi,

Given the lack of responses to my request for comments earlier, I have
created a new patch (attached) that simply renames the int64 type
defined in smsc_soap.c to gw_int64.

This patch fixes a compilation error when building Kannel in 64 bit mode
on AIX 5.2.

Regards,

James

> From: Bostock James
> Sent: 11 July 2008 10:43
> 
> > From: Stipe Tolj
> > Sent: 10 July 2008 17:06
> >
> > Bostock James schrieb:
> > > Hi,
> > >
> > > The attached patch causes the int64 type to only be defined (in
> > > gw/smsc/smsc_soap.c) if it does not already exist (as determined
by
> the
> > > autoconf AC_CHECK_TYPES macro). This patch fixes a compilation
> failure
> > > on AIX when compiling in 64 bit mode.
> >
> > first of all thanks a lot James, we appreciate your work highly.
> >
> > hmmm, -0 on the patch. Reason: I don't like the idea to have
> >
> >    #define HAVE_<TYPE>
> >
> > statements in the gw-config.h.in autoconf macro.
> >
> 
> It might be overkill but one option would be to add a separate header
> file in the gw/smsc directory with the #define HAVE_<TYPE>. Something
> similar has already been done in gwlib (gw_uuid_types.h.in).
> 
> Or maybe the __s64 type defined in gw_uuid_types.h could be used.
> 
> I am not sure how portable using int64_t is, otherwise I would suggest
> that.
> 
> Comments?
> 
> -james
kannel.int64-2.patch (application/octet-stream, 3 KB)
Index: gw/smsc/smsc_soap.c
===================================================================
RCS file: /home/cvs/gateway/gw/smsc/smsc_soap.c,v
retrieving revision 1.20
diff -u -r1.20 smsc_soap.c
--- gw/smsc/smsc_soap.c	10 Mar 2008 09:37:42 -0000	1.20
+++ gw/smsc/smsc_soap.c	21 Jul 2008 12:05:18 -0000
@@ -223,7 +223,7 @@
 /* useful macros go here (some of these were ripped of other modules,
    so maybe its better to put them in a shared file) */
 #define	O_DESTROY(a)	{ if(a) octstr_destroy(a); a=NULL; }
-typedef long long int64;
+typedef long long gw_int64;
  
 /*
  * SOAP module public API towards bearerbox
@@ -265,7 +265,7 @@
 static Octstr *soap_format_xml(Octstr *xml_file, Msg *msg, PrivData *privdata);
 /* parse a response from the SOAP server to get the message ID */
 
-static int64 soap_parse_response(PrivData *privdata, Octstr *xmlResponse);
+static gw_int64 soap_parse_response(PrivData *privdata, Octstr *xmlResponse);
 /* parse an incoming MO xml */
 static long soap_parse_mo(SMSCConn *conn, Octstr *request, Octstr **response);
 /* parse an incoming derlivery report */
@@ -276,8 +276,8 @@
  */
 /* parse an integer out of a XML node */
 int soap_xmlnode_get_long(xmlNodePtr cur, long *out);
-/* parse an int64 out of a XML node */
-int soap_xmlnode_get_int64(xmlNodePtr cur, int64 *out);
+/* parse an gw_int64 out of a XML node */
+int soap_xmlnode_get_int64(xmlNodePtr cur, gw_int64 *out);
 /* parse a string out of a XML node */
 int soap_xmlnode_get_octstr(xmlNodePtr cur, Octstr **out);
 /* convert a one2one date format to epoch time */
@@ -1123,7 +1123,7 @@
     Octstr *responseBody, *responseURL;
     List* responseHeaders;
     int responseStatus;
-    int64 msgID;
+    gw_int64 msgID;
     ClientData* cd;
 
     /* don't get in here unless I have some callers */
@@ -1203,9 +1203,9 @@
  *                but if gwlist_get() returns NULL for an empty item, things might break - and
  *                not in a nice way.
  **/
-static int64 soap_parse_response(PrivData* privdata, Octstr* xmlResponse)
+static gw_int64 soap_parse_response(PrivData* privdata, Octstr* xmlResponse)
 {
-    int64 msgID = -1;
+    gw_int64 msgID = -1;
     long responseStatus = -1;
     xmlDocPtr responseDoc;
     xmlNodePtr root;
@@ -1286,7 +1286,7 @@
 
     List* maps;
     char receiver[30], sender[30], msgtype[30], msgdata[255], date[30];
-    int64 msgid = -1;
+    gw_int64 msgid = -1;
     char* keywords[] = { "receiver", "sender", "msgtype", "msgdata", "date", "id" };
     char* sscans[] = { "%s", "%s", "%s", "%s", "%s", "%lld" };
     void* pointers[] = { &receiver, &sender, &msgtype, &msgdata, &date, &msgid };
@@ -1705,12 +1705,12 @@
 
 /*
  * function soap_xmlnode_get_int64()
- *	parse the content of an XML node and return it as an int64
+ *	parse the content of an XML node and return it as an gw_int64
  * Input: xmlNodePtr to node
  * Output: long parsed
  * Returns: 0 on success, -1 on failure
  **/
-int soap_xmlnode_get_int64(xmlNodePtr cur, int64* out)
+int soap_xmlnode_get_int64(xmlNodePtr cur, gw_int64* out)
 {
     xmlChar* nodeContent;
     char* endPointer;
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.