]> git.apps.os.sepia.ceph.com Git - ceph.git/commitdiff
Switch from "timegm()" to "internal_timegm()" 14327/head
authorRishabh Kumar <kris.kr296@gmail.com>
Wed, 21 Dec 2016 14:11:29 +0000 (19:41 +0530)
committerCasey Bodley <cbodley@redhat.com>
Tue, 4 Apr 2017 18:24:05 +0000 (14:24 -0400)
Changed timegm() to internal_timegm() for better portability

Fixes: http://tracker.ceph.com/issues/12863
Signed-off-by: Rishabh Kumar <kris.kr296@gmail.com>
src/rgw/rgw_auth_s3.cc
src/rgw/rgw_common.cc
src/rgw/rgw_data_sync.cc
src/rgw/rgw_json_enc.cc
src/rgw/rgw_policy_s3.cc
src/rgw/rgw_rest_s3.cc

index 6cebdbab942aaefa874967135a54417769fd92ce..f4b34e929e854e169cdd975ca32967c365ee512b 100644 (file)
@@ -219,7 +219,7 @@ bool rgw_create_s3_canonical_header(const req_info& info,
         dout(0) << "NOTICE: bad date (predates epoch): " << req_date << dendl;
         return false;
       }
-      *header_time = utime_t(timegm(&t), 0);
+      *header_time = utime_t(internal_timegm(&t), 0);
     }
   }
 
index 7f7f45c45dda4cc6587af58d4d5f29e5af0294e9..d4888374a1c3e8235e8ab39680571489b26e2967 100644 (file)
@@ -479,7 +479,7 @@ int parse_time(const char *time_str, real_time *time)
     return -EINVAL;
   }
 
-  time_t sec = timegm(&tm);
+  time_t sec = internal_timegm(&tm);
   *time = utime_t(sec, ns).to_real_time();
 
   return 0;
index e8eac6163198f229d78d40a15299a256af486616..cbe3a91d8e14033dbf77b9be28598f90d314a602 100644 (file)
@@ -1951,7 +1951,7 @@ struct bucket_list_entry {
     uint32_t nsec;
     if (parse_iso8601(mtime_str.c_str(), &t, &nsec)) {
       ceph_timespec ts;
-      ts.tv_sec = (uint64_t)timegm(&t);
+      ts.tv_sec = (uint64_t)internal_timegm(&t);
       ts.tv_nsec = nsec;
       mtime = real_clock::from_ceph_timespec(ts);
     }
index 35920721200e0762214c9f94dc4509df2c0a1d4e..e3f39231b165765b77952426602fcb0fc602aa23 100644 (file)
@@ -1170,7 +1170,7 @@ void rgw::keystone::TokenEnvelope::Token::decode_json(JSONObj *obj)
   JSONDecoder::decode_json("expires", expires_iso8601, obj, true);
 
   if (parse_iso8601(expires_iso8601.c_str(), &t)) {
-    expires = timegm(&t);
+    expires = internal_timegm(&t);
   } else {
     expires = 0;
     throw JSONDecoder::err("Failed to parse ISO8601 expiration date from Keystone response.");
@@ -1215,7 +1215,7 @@ void rgw::keystone::TokenEnvelope::decode_v3(JSONObj* const root_obj)
 
   struct tm t;
   if (parse_iso8601(expires_iso8601.c_str(), &t)) {
-    token.expires = timegm(&t);
+    token.expires = internal_timegm(&t);
   } else {
     token.expires = 0;
     throw JSONDecoder::err("Failed to parse ISO8601 expiration date"
index b242142ed32afcb3c788c4d1b5cf88fc2d9b6a33..c2f87547edcd0f6406015573d4104c3f425067e6 100644 (file)
@@ -130,7 +130,7 @@ int RGWPolicy::set_expires(const string& e)
   if (!parse_iso8601(e.c_str(), &t))
       return -EINVAL;
 
-  expires = timegm(&t);
+  expires = internal_timegm(&t);
 
   return 0;
 }
index bebd03ee690e56b556ee0b88e38d0282f96c6830..3510401eff70babed73f52ed25fe79aaee6a284a 100644 (file)
@@ -3468,7 +3468,7 @@ int RGW_Auth_S3::authorize_v4(RGWRados *store, struct req_state *s, bool force_b
         return -EPERM;
       }
       /* handle expiration in epoch time */
-      now_req = (uint64_t)timegm(&date_t);
+      now_req = (uint64_t)internal_timegm(&date_t);
       if (now >= now_req + exp) {
         dout(10) << "NOTICE: now = " << now << ", now_req = " << now_req << ", exp = " << exp << dendl;
         return -EPERM;