The branch, v3-6-test has been updated
       via  a9c24af s3/net: don't use external "date" to make "net time set" 
more portable
      from  858c790 Fix bug 7866 - "net" in v3-6-test broken.

http://gitweb.samba.org/?p=samba.git;a=shortlog;h=v3-6-test


- Log -----------------------------------------------------------------
commit a9c24af5ff228e862401189e45d24640887af853
Author: Björn Jacke <[email protected]>
Date:   Tue Dec 14 13:28:49 2010 +0100

    s3/net: don't use external "date" to make "net time set" more portable
    
    the "date" syntax is different for example on *BSD
    
    Autobuild-User: Björn Jacke <[email protected]>
    Autobuild-Date: Tue Dec 14 15:31:03 CET 2010 on sn-devel-104
    (cherry picked from commit 4fd57cbe1ba35d3b3deb01b2eb6aba1d0aa4ddfd)

-----------------------------------------------------------------------

Summary of changes:
 source3/utils/net_time.c |   24 ++++++++++--------------
 1 files changed, 10 insertions(+), 14 deletions(-)


Changeset truncated at 500 lines:

diff --git a/source3/utils/net_time.c b/source3/utils/net_time.c
index d9b6f27..a02387f 100644
--- a/source3/utils/net_time.c
+++ b/source3/utils/net_time.c
@@ -103,26 +103,22 @@ int net_time_usage(struct net_context *c, int argc, const 
char **argv)
        return -1;
 }
 
-/* try to set the system clock using /bin/date */
+/* try to set the system clock */
 static int net_time_set(struct net_context *c, int argc, const char **argv)
 {
-       time_t t = nettime(c, NULL);
-       char *cmd;
+       struct timeval tv;
        int result;
 
-       if (t == 0) return -1;
+       tv.tv_sec = nettime(c, NULL);
+       tv.tv_usec=0;
+
+       if (tv.tv_sec == 0) return -1;
+
+       result = settimeofday(&tv,0);
 
-       /* yes, I know this is cheesy. Use "net time system" if you want to
-          roll your own. I'm putting this in as it works on a large number
-          of systems and the user has a choice in whether its used or not */
-       if (asprintf(&cmd, "/bin/date %s", systime(t)) == -1) {
-               return -1;
-       }
-       result = system(cmd);
        if (result)
-               d_fprintf(stderr, _("%s failed.  Error was (%s)\n"),
-                       cmd, strerror(errno));
-       free(cmd);
+               d_fprintf(stderr, _("setting system clock failed.  Error was 
(%s)\n"),
+                       strerror(errno));
 
        return result;
 }


-- 
Samba Shared Repository

Reply via email to