Hopefully the last time I have to correct/patch this bit of code for a while..
Alex -- Alex Judd http://www.skywire.co.uk
Index: gw/smsc_smpp.c =================================================================== RCS file: /home/cvs/gateway/gw/smsc_smpp.c,v retrieving revision 1.65 diff -u -r1.65 smsc_smpp.c --- gw/smsc_smpp.c 22 May 2002 12:08:10 -0000 1.65 +++ gw/smsc_smpp.c 24 May 2002 15:59:00 -0000 @@ -326,20 +326,19 @@ /* work out 1/4 hour difference between local time and UTC/GMT */ gmtime = gw_gmtime(time(NULL)); localtime = gw_localtime(time(NULL)); - if (localtime.tm_hour >= gmtime.tm_hour) { + gwqdiff = ((localtime.tm_hour - gmtime.tm_hour) * 4) + + ((localtime.tm_min - gmtime.tm_min) / 15); + if (gwqdiff >= 0) relation_UTC_time = octstr_create("+"); - gwqdiff = (localtime.tm_hour - gmtime.tm_hour) * 4; - } else { + else relation_UTC_time = octstr_create("-"); - gwqdiff = (gmtime.tm_hour - localtime.tm_hour) * 4; - } if (msg->sms.validity) { tm = gw_localtime(time(NULL) + msg->sms.validity * 60); sprintf(buffer, "%02d%02d%02d%02d%02d%02d0%01d%02d%1s", tm.tm_year % 100, tm.tm_mon + 1, tm.tm_mday, tm.tm_hour, tm.tm_min, tm.tm_sec, - 0, gwqdiff, relation_UTC_time ); + 0, gwqdiff, octstr_get_cstr(relation_UTC_time) ); pdu->u.submit_sm.validity_period = octstr_create(buffer); } @@ -348,7 +347,7 @@ sprintf(buffer, "%02d%02d%02d%02d%02d%02d0%01d%02d%1s", tm.tm_year % 100, tm.tm_mon + 1, tm.tm_mday, tm.tm_hour, tm.tm_min, tm.tm_sec, - 0, gwqdiff, relation_UTC_time ); + 0, gwqdiff, octstr_get_cstr(relation_UTC_time) ); pdu->u.submit_sm.schedule_delivery_time = octstr_create(buffer); } }