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;