Hi,

I've noticed that in many places in sipX we store the result of
getSecsSinceEpoch() in an "int" rather than in a "long" even though 
sipXportLib/include/os/linux/OsDateTimeLinux.h defines the return value
as "unsigned long".
  32bit machine: int=32bits long=32bits time_t=32bits
  64bit machine: int=32bits long=64bits time_t=64bits

This won't be a problem until the year 2038 when the 32bit register
overflows, but it would be nice to fix it before then! (at least for the
64bit machine).
Some of the units that would need to be changed to store time in "long"
rather than "int" are:
  sipXcallLib/src/cp/SipPresenceMonitor.cpp
  sipXcommserverLib/src/sipdb/SubscriptionDB.cpp
  sipXcommserverLib/src/persist/SipPersistentSubscriptionMgr.cpp
 
sipXproxy/lib/authplugins/NatTraversalAgent/NatTraversalAgentDataTypes.c
pp
  sipXpublisher/src/statusserver/SubscribeServerThread.cpp
  sipXproxy/lib/authplugins/NatTraversalAgent/NatMaintainer.cpp
  sipXpublisher/src/statusserver/SubscribeServerThread.cpp
  sipXpublisher/src/statusserver/Notifier.cpp
  sipXregistry/src/SipRegistrarServer.cpp
  sipXtackLib/src/net/SipSubscriptionMgr.cpp

Dale has mentioned that we would need to check for (1) negative value
storage (2) IMDB value/types (3) registration "update number"
calculation.

Maybe I should raise an issue against sipx 4.2 release to make this
change?

Dave.
_______________________________________________
sipx-dev mailing list
[email protected]
List Archive: http://list.sipfoundry.org/archive/sipx-dev
Unsubscribe: http://list.sipfoundry.org/mailman/listinfo/sipx-dev

Reply via email to