関数 | |
static time_t | cli_servertime (const char *host, struct in_addr *ip, int *zone) |
static time_t | nettime (int *zone) |
static const char * | systime (time_t t) |
int | net_time_usage (int argc, const char **argv) |
static int | net_time_set (int argc, const char **argv) |
static int | net_time_system (int argc, const char **argv) |
static int | net_time_zone (int argc, const char **argv) |
int | net_time (int argc, const char **argv) |
static time_t cli_servertime | ( | const char * | host, | |
struct in_addr * | ip, | |||
int * | zone | |||
) | [static] |
net_time.c の 27 行で定義されています。
参照先 cli_state::called・cli_state::calling・cli・cli_connect()・cli_initialise()・cli_negprot()・cli_session_request()・cli_shutdown()・fprintf()・global_myname・make_nmb_name()・nt_errstr()・cli_state::servertime・cli_state::serverzone・status.
参照元 net_time()・nettime().
00028 { 00029 struct nmb_name calling, called; 00030 time_t ret = 0; 00031 struct cli_state *cli = NULL; 00032 NTSTATUS status; 00033 00034 cli = cli_initialise(); 00035 if (!cli) { 00036 goto done; 00037 } 00038 00039 status = cli_connect(cli, host, ip); 00040 if (!NT_STATUS_IS_OK(status)) { 00041 fprintf(stderr,"Can't contact server %s. Error %s\n", host, nt_errstr(status)); 00042 goto done; 00043 } 00044 00045 make_nmb_name(&calling, global_myname(), 0x0); 00046 if (host) { 00047 make_nmb_name(&called, host, 0x20); 00048 } else { 00049 make_nmb_name(&called, "*SMBSERVER", 0x20); 00050 } 00051 00052 if (!cli_session_request(cli, &calling, &called)) { 00053 fprintf(stderr,"Session request failed\n"); 00054 goto done; 00055 } 00056 if (!cli_negprot(cli)) { 00057 fprintf(stderr,"Protocol negotiation failed\n"); 00058 goto done; 00059 } 00060 00061 ret = cli->servertime; 00062 if (zone) *zone = cli->serverzone; 00063 00064 done: 00065 if (cli) { 00066 cli_shutdown(cli); 00067 } 00068 return ret; 00069 }
static time_t nettime | ( | int * | zone | ) | [static] |
net_time.c の 72 行で定義されています。
参照先 cli_servertime()・opt_dest_ip・opt_have_ip・opt_host.
参照元 net_time_set()・net_time_system()・net_time_zone().
00073 { 00074 return cli_servertime(opt_host, opt_have_ip? &opt_dest_ip : NULL, zone); 00075 }
static const char* systime | ( | time_t | t | ) | [static] |
net_time.c の 78 行で定義されています。
参照先 fstr_sprintf()・localtime().
参照元 make_systemtime()・net_time_set()・net_time_system()・notify_system_time()・size_of_systemtime()・spoolss_io_system_time().
00079 { 00080 static fstring s; 00081 struct tm *tm; 00082 00083 tm = localtime(&t); 00084 if (!tm) { 00085 return "unknown"; 00086 } 00087 00088 fstr_sprintf(s, "%02d%02d%02d%02d%04d.%02d", 00089 tm->tm_mon+1, tm->tm_mday, tm->tm_hour, 00090 tm->tm_min, tm->tm_year + 1900, tm->tm_sec); 00091 return s; 00092 }
int net_time_usage | ( | int | argc, | |
const char ** | argv | |||
) |
net_time.c の 94 行で定義されています。
参照先 d_printf()・net_common_flags_usage().
参照元 net_help()・net_time().
00095 { 00096 d_printf( 00097 "net time\n\tdisplays time on a server\n\n"\ 00098 "net time system\n\tdisplays time on a server in a format ready for /bin/date\n\n"\ 00099 "net time set\n\truns /bin/date with the time from the server\n\n"\ 00100 "net time zone\n\tdisplays the timezone in hours from GMT on the remote computer\n\n"\ 00101 "\n"); 00102 net_common_flags_usage(argc, argv); 00103 return -1; 00104 }
static int net_time_set | ( | int | argc, | |
const char ** | argv | |||
) | [static] |
net_time.c の 107 行で定義されています。
参照先 asprintf()・d_fprintf()・errno・nettime()・result・strerror()・systime()・t.
参照元 net_time().
00108 { 00109 time_t t = nettime(NULL); 00110 char *cmd; 00111 int result; 00112 00113 if (t == 0) return -1; 00114 00115 /* yes, I know this is cheesy. Use "net time system" if you want to 00116 roll your own. I'm putting this in as it works on a large number 00117 of systems and the user has a choice in whether its used or not */ 00118 asprintf(&cmd, "/bin/date %s", systime(t)); 00119 result = system(cmd); 00120 if (result) 00121 d_fprintf(stderr, "%s failed. Error was (%s)\n", 00122 cmd, strerror(errno)); 00123 free(cmd); 00124 00125 return result; 00126 }
static int net_time_system | ( | int | argc, | |
const char ** | argv | |||
) | [static] |
static int net_time_zone | ( | int | argc, | |
const char ** | argv | |||
) | [static] |
net_time.c の 141 行で定義されています。
参照元 net_time().
00142 { 00143 int zone = 0; 00144 int hours, mins; 00145 char zsign; 00146 time_t t; 00147 00148 t = nettime(&zone); 00149 00150 if (t == 0) return -1; 00151 00152 zsign = (zone > 0) ? '-' : '+'; 00153 if (zone < 0) zone = -zone; 00154 00155 zone /= 60; 00156 hours = zone / 60; 00157 mins = zone % 60; 00158 00159 printf("%c%02d%02d\n", zsign, hours, mins); 00160 00161 return 0; 00162 }
int net_time | ( | int | argc, | |
const char ** | argv | |||
) |
net_time.c の 165 行で定義されています。
参照先 cli_servertime()・d_fprintf()・d_printf()・find_master_ip()・net_run_function()・net_time_set()・net_time_system()・net_time_usage()・net_time_zone()・opt_dest_ip・opt_have_ip・opt_host・opt_target_workgroup・t.
00166 { 00167 time_t t; 00168 struct functable func[] = { 00169 {"SYSTEM", net_time_system}, 00170 {"SET", net_time_set}, 00171 {"ZONE", net_time_zone}, 00172 {NULL, NULL} 00173 }; 00174 00175 if (!opt_host && !opt_have_ip && 00176 !find_master_ip(opt_target_workgroup, &opt_dest_ip)) { 00177 d_fprintf(stderr, "Could not locate a time server. Try "\ 00178 "specifying a target host.\n"); 00179 net_time_usage(argc,argv); 00180 return -1; 00181 } 00182 00183 if (argc != 0) { 00184 return net_run_function(argc, argv, func, net_time_usage); 00185 } 00186 00187 /* default - print the time */ 00188 t = cli_servertime(opt_host, opt_have_ip? &opt_dest_ip : NULL, NULL); 00189 if (t == 0) return -1; 00190 00191 d_printf("%s", ctime(&t)); 00192 return 0; 00193 }