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
