示例#1
0
void write_stats(int what)
{
	StatsEntry stats = STATS_ENTRY__INIT;
	DumpStatsEntry dstats = DUMP_STATS_ENTRY__INIT;
	char *name;
	int fd;

	pr_info("Writing stats\n");
	if (what == DUMP_STATS) {
		stats.dump = &dstats;

		encode_time(TIME_FREEZING, &dstats.freezing_time);
		encode_time(TIME_FROZEN, &dstats.frozen_time);
		encode_time(TIME_MEMDUMP, &dstats.memdump_time);
		encode_time(TIME_MEMWRITE, &dstats.memwrite_time);

		dstats.pages_scanned = counts[CNT_PAGES_SCANNED];
		dstats.pages_skipped_parent = counts[CNT_PAGES_SKIPPED_PARENT];
		dstats.pages_written = counts[CNT_PAGES_WRITTEN];

		name = "dump";
	} else
		return;

	fd = open_image(CR_FD_STATS, O_DUMP, name);
	if (fd >= 0) {
		pb_write_one(fd, &stats, PB_STATS);
		close(fd);
	}
}
示例#2
0
Fl_Date_Time::Fl_Date_Time (const char * dat) {

   int i;
   // NLS stuff
   for (i=0; i<7;i++) dayname[i]=_(dayname[i]);
   for (i=0; i<12;i++) mname[i]=_(mname[i]);   

   Fl_String  s1( Fl_String(dat).trim() );
   Fl_String  s2;

   if (!*dat) {
      m_dateTime = 0;
      return;
   }
   int      p = s1.pos(" ");
   if (p >= 0) {
      s2 = s1.sub_str(p+1,20).trim();
      s1[p] = 0;
   }
   if ( strchr(s1.c_str(),dateSeparator) ) {
      encode_date(m_dateTime, s1.c_str());
      if ( strchr(s2.c_str(),timeSeparator) ) {
         double dt;
         encode_time(dt, s2.c_str());
         m_dateTime += dt;
      }
   }
   else  encode_time(m_dateTime, s1.c_str());
}
示例#3
0
文件: list.c 项目: Kalimeiro/burp
void ls_to_buf(char *lsbuf, struct sbuf *sb)
{
	int n;
	char *p;
	time_t time;
	const char *f;
	struct stat *statp=&sb->statp;
	*lsbuf='\0';

	p=encode_mode(statp->st_mode, lsbuf);
	n=sprintf(p, " %2d ", (uint32_t)statp->st_nlink);
	p+=n;
	n=sprintf(p, "%5d %5d", (uint32_t)statp->st_uid,
		(uint32_t)statp->st_gid);
	p+=n;
	n=sprintf(p, " %7lu ", (unsigned long)statp->st_size);
	p+=n;
	if(statp->st_ctime>statp->st_mtime) time=statp->st_ctime;
	else time=statp->st_mtime;

	// Display most recent time.
	p=encode_time(time, p);
	*p++=' ';
	for(f=sb->path.buf; *f; ) *p++=*f++;
	*p=0;
}
示例#4
0
void ls_output(char *buf, const char *fname, struct stat *statp)
{
	char *p;
	const char *f;
	int n;
	time_t time;

	p = encode_mode(statp->st_mode, buf);
	n = sprintf(p, " %2d ", (uint32_t)statp->st_nlink);
	p += n;
	n = sprintf(p, "%5d %5d",
		(uint32_t)statp->st_uid,
		(uint32_t)statp->st_gid);
	p += n;
	n = sprintf(p, " %7lu ", (unsigned long) statp->st_size);
	p += n;
	if (statp->st_ctime > statp->st_mtime)
		time = statp->st_ctime;
	else
		time = statp->st_mtime;

	/* Display most recent time */
	p = encode_time(time, p);
	*p++ = ' ';
	for (f=fname; *f; )
		*p++ = *f++;
	*p = 0;
}
示例#5
0
Fl_Date_Time Fl_Date_Time::convert(const long tt) {
   struct tm *t = localtime((time_t*)&tt);
   double dat,tim;
   encode_date(dat,short(t->tm_year+1900),short(t->tm_mon+1),short(t->tm_mday));
   encode_time(tim,short(t->tm_hour),short(t->tm_min),short(t->tm_sec),short(0));
   return dat + tim;
}
示例#6
0
void Fl_Date_Time::encode_date(double &dt,const char *dat) {
   char     bdat[64];
   short    datePart[7], partNumber = 0;
   char     *ptr = NULL;
   int i;

   memset(datePart,0,sizeof(datePart));
   upperCase(bdat, dat, sizeof(bdat));

   if (strcmp(bdat,"TODAY") == 0) {
      dt = Date();        // Sets the current date
      return;
   } else {
      int len = strlen(bdat);
      for(i = 0; i <= len && partNumber < 7; i++) {
         char c = bdat[i];
         if (c == dateSeparator || c == timeSeparator || c == ' ' || c == 0) {
            if (c == timeSeparator && partNumber < 3) partNumber = 3;
            if (ptr) { // end of token
               bdat[i] = 0;
               datePart[partNumber] = (short)atoi(ptr);
               partNumber++;
               ptr = NULL;
            }
         } else {
            if (!isdigit(c)) {
               dt = 0;
               return;
            }
            if (!ptr) ptr = bdat + i;
         }
      }
      if (partNumber < 3) { // Not enough date parts
         dt = 0;
         return;
      }
      short month=0, day=0, year=0;
      for(i = 0; i < 3; i++)
      switch (datePartsOrder[i]) {
      case 'M': month = datePart[i]; break;
      case 'D': day   = datePart[i]; break;
      case 'Y': year  = datePart[i]; break;
      }
      if (year < 100) {
         if (year < 35) year = short(year + 2000);
         else           year = short(year + 1900);
      }
      double dd;
      encode_date(dd,year,month,day);
      if (partNumber > 3) { // Time part included into string
         double d;
         encode_time(d,datePart[3],datePart[4],datePart[5],datePart[6]);
         dd += d;
      }
      dt = dd;

   }
}
示例#7
0
ISC_TIMESTAMP TimeStamp::encode_timestamp(const struct tm* times, const int fractions)
{
	fb_assert(fractions >= 0 && fractions < ISC_TIME_SECONDS_PRECISION);

	ISC_TIMESTAMP ts;
	ts.timestamp_date = encode_date(times);
	ts.timestamp_time = encode_time(times->tm_hour, times->tm_min, times->tm_sec, fractions);

	return ts;
}
示例#8
0
//----------------------------------------------------------------
// Constructors
//----------------------------------------------------------------
Fl_Date_Time::Fl_Date_Time (short year,short month,short day,short hour,short minute,short second) {
   double t;
   int i;
   // NLS stuff
   for (i=0; i<7;i++) dayname[i]=_(dayname[i]);
   for (i=0; i<12;i++) mname[i]=_(mname[i]);   
  
   encode_date(m_dateTime,year,month,day);
   encode_time(t,hour,minute,second);
   m_dateTime += t;
}
示例#9
0
文件: codec.c 项目: tidatida/alarmd
void
encode_event(DBusMessageIter *iter, int *err, const alarm_event_t *eve,
             const char **def_args)
{
  encode_cookie   (iter, err, &eve->ALARMD_PRIVATE(cookie));
  encode_time     (iter, err, &eve->ALARMD_PRIVATE(trigger));
  encode_string   (iter, err, &eve->title);
  encode_string   (iter, err, &eve->message);
  encode_string   (iter, err, &eve->sound);
  encode_string   (iter, err, &eve->icon);
  encode_unsigned (iter, err, &eve->flags);
  encode_string   (iter, err, &eve->alarm_appid);
  encode_time     (iter, err, &eve->alarm_time);
  encode_tm       (iter, err, &eve->alarm_tm);
  encode_string   (iter, err, &eve->alarm_tz);
  encode_time     (iter, err, &eve->recur_secs);
  encode_int      (iter, err, &eve->recur_count);
  encode_time     (iter, err, &eve->snooze_secs);
  encode_time     (iter, err, &eve->snooze_total);

  encode_size     (iter, err, &eve->action_cnt);
  encode_int      (iter, err, &eve->response);

  for( size_t i = 0; i < eve->action_cnt; ++i )
  {
    encode_action(iter, err, &eve->action_tab[i], def_args);
  }

  encode_size     (iter, err, &eve->recurrence_cnt);
  for( size_t i = 0; i < eve->recurrence_cnt; ++i )
  {
    encode_recur(iter, err, &eve->recurrence_tab[i]);
  }

  encode_size     (iter, err, &eve->attr_cnt);
  for( size_t i = 0; i < eve->attr_cnt; ++i )
  {
    encode_attr(iter, err, eve->attr_tab[i]);
  }
}
示例#10
0
void Fl_Date_Time::encode_time(double& dt,const char *tim) {
   char  bdat[32];
   short timePart[4] = { 0, 0, 0, 0},
         partNumber = 0;
   char  *ptr = NULL;
   bool  afternoon = false;

   upperCase(bdat, tim, sizeof(bdat));

   if (!trimRight(bdat)) {
      dt = 0;
      return;
   }

   if (strcmp(bdat,"TIME") == 0) {
      dt = Time();        // Sets the current date
      return;
   } else {
      char *p = strstr(bdat,"AM");
      if (p) {
         *p = 0;
      } else {
         p = strstr(bdat,"PM");
         if (p) {
            *p = 0;
            afternoon = true;
         }
      }
      trimRight(bdat);
      int len = strlen(bdat);
      for (int i = 0; i <= len && partNumber < 4; i++) {
         char c = bdat[i];
         if (c == timeSeparator || c == ' ' || c == '.' || c == 0) {
            if (ptr) { // end of token
               bdat[i] = 0;
               timePart[partNumber] = (short) atoi(ptr);
               partNumber++;
               ptr = NULL;
            }
         } else {
            if (!isdigit(c)) {
               dt = 0;
               return;
            }
            if (!ptr) ptr = bdat + i;
         }
      }
      if (afternoon && timePart[0] != 12)
         timePart[0] = short(timePart[0] + 12);
      encode_time(dt,timePart[0],timePart[1],timePart[2],timePart[3]);
   }
}
示例#11
0
/*----------------------------------------------------------------------------*/
void disp_rec_time(void)
{
    u16 encoder_time;
    u8 min,sec;

    encoder_time = encode_time();
    min = encoder_time / 60;
    sec = encoder_time % 60;

    printf_num(sec,2,2);
    printf_num(min,0,2);
    led_putchar(':',0);
	
}
示例#12
0
文件: codec.c 项目: tidatida/alarmd
void
encode_attr(DBusMessageIter *iter, int *err, const alarm_attr_t *att)
{
  encode_string(iter, err, &att->attr_name);
  encode_int   (iter, err, &att->attr_type);

  switch( att->attr_type )
  {
  case ALARM_ATTR_NULL:  break;
  case ALARM_ATTR_INT:   encode_int   (iter, err, &att->attr_data.ival); break;
  case ALARM_ATTR_TIME:  encode_time  (iter, err, &att->attr_data.tval); break;
  case ALARM_ATTR_STRING:encode_string(iter, err, &att->attr_data.sval); break;
  }
}
示例#13
0
文件: attr.c 项目: halgandd/bacula
/*
 * Print an ls style message, also send M_RESTORED
 */
void print_ls_output(JCR *jcr, ATTR *attr)
{
   char buf[5000];
   char ec1[30];
   char en1[30], en2[30];
   char *p, *f;
   guid_list *guid;

   if (attr->type == FT_DELETED) { /* TODO: change this to get last seen values */
      bsnprintf(buf, sizeof(buf),
                "----------   - -        -                - ---------- --------  %s\n", attr->ofname);
      Dmsg1(20, "%s", buf);
      Jmsg(jcr, M_RESTORED, 1, "%s", buf);
      return;
   }

   if (!jcr->id_list) {
      jcr->id_list = new_guid_list();
   }
   guid = jcr->id_list;
   p = encode_mode(attr->statp.st_mode, buf);
   p += sprintf(p, "  %2d ", (uint32_t)attr->statp.st_nlink);
   p += sprintf(p, "%-8.8s %-8.8s", 
                guid->uid_to_name(attr->statp.st_uid, en1, sizeof(en1)),
                guid->gid_to_name(attr->statp.st_gid, en2, sizeof(en2)));
   p += sprintf(p, "%10.10s ", edit_int64(attr->statp.st_size, ec1));
   p = encode_time(attr->statp.st_ctime, p);
   *p++ = ' ';
   *p++ = ' ';
   for (f=attr->ofname; *f && (p-buf) < (int)sizeof(buf)-10; ) {
      *p++ = *f++;
   }
   if (attr->type == FT_LNK) {
      *p++ = ' ';
      *p++ = '-';
      *p++ = '>';
      *p++ = ' ';
      /* Copy link name */
      for (f=attr->olname; *f && (p-buf) < (int)sizeof(buf)-10; ) {
         *p++ = *f++;
      }
   }
   *p++ = '\n';
   *p = 0;
   Dmsg1(20, "%s", buf);
   Jmsg(jcr, M_RESTORED, 1, "%s", buf);
}
示例#14
0
void write_stats(int what)
{
	StatsEntry stats = STATS_ENTRY__INIT;
	DumpStatsEntry ds_entry = DUMP_STATS_ENTRY__INIT;
	RestoreStatsEntry rs_entry = RESTORE_STATS_ENTRY__INIT;
	char *name;
	struct cr_img *img;

	pr_info("Writing stats\n");
	if (what == DUMP_STATS) {
		stats.dump = &ds_entry;

		encode_time(TIME_FREEZING, &ds_entry.freezing_time);
		encode_time(TIME_FROZEN, &ds_entry.frozen_time);
		encode_time(TIME_MEMDUMP, &ds_entry.memdump_time);
		encode_time(TIME_MEMWRITE, &ds_entry.memwrite_time);
		ds_entry.has_irmap_resolve = true;
		encode_time(TIME_IRMAP_RESOLVE, &ds_entry.irmap_resolve);

		ds_entry.pages_scanned = dstats->counts[CNT_PAGES_SCANNED];
		ds_entry.pages_skipped_parent = dstats->counts[CNT_PAGES_SKIPPED_PARENT];
		ds_entry.pages_written = dstats->counts[CNT_PAGES_WRITTEN];
		ds_entry.pages_zero = dstats->counts[CNT_PAGES_ZERO];
		ds_entry.pages_lazy = dstats->counts[CNT_PAGES_LAZY];

		name = "dump";
	} else if (what == RESTORE_STATS) {
		stats.restore = &rs_entry;

		rs_entry.pages_compared = atomic_read(&rstats->counts[CNT_PAGES_COMPARED]);
		rs_entry.pages_skipped_cow = atomic_read(&rstats->counts[CNT_PAGES_SKIPPED_COW]);
		rs_entry.has_pages_restored = true;
		rs_entry.pages_restored = atomic_read(&rstats->counts[CNT_PAGES_RESTORED]);

		encode_time(TIME_FORK, &rs_entry.forking_time);
		encode_time(TIME_RESTORE, &rs_entry.restore_time);

		name = "restore";
	} else
		return;

	img = open_image_at(AT_FDCWD, CR_FD_STATS, O_DUMP, name);
	if (img) {
		pb_write_one(img, &stats, PB_STATS);
		close_image(img);
	}
}
示例#15
0
文件: testls.c 项目: anarexia/bacula
static void print_ls_output(char *fname, char *link, int type, struct stat *statp)
{
   char buf[2000];
   char ec1[30];
   char *p, *f;
   int n;

   if (type == FT_LNK) {
      statp->st_mtime = 0;
      statp->st_mode |= 0777;
   }
   p = encode_mode(statp->st_mode, buf);
   n = sprintf(p, " %2d ", (uint32_t)statp->st_nlink);
   p += n;
   n = sprintf(p, "%-4d %-4d", (int)statp->st_uid, (int)statp->st_gid);
   p += n;
   n = sprintf(p, "%10.10s ", edit_uint64(statp->st_size, ec1));
   p += n;
   if (S_ISCHR(statp->st_mode) || S_ISBLK(statp->st_mode)) {
      n = sprintf(p, "%4x ", (int)statp->st_rdev);
   } else {
      n = sprintf(p, "     ");
   }
   p += n;
   p = encode_time(statp->st_mtime, p);
   *p++ = ' ';
   /* Copy file name */
   for (f=fname; *f && (p-buf) < (int)sizeof(buf); )
      *p++ = *f++;
   if (type == FT_LNK) {
      *p++ = '-';
      *p++ = '>';
      *p++ = ' ';
      /* Copy link name */
      for (f=link; *f && (p-buf) < (int)sizeof(buf); )
         *p++ = *f++;
   }
   *p++ = '\n';
   *p = 0;
   fputs(buf, stdout);
}
示例#16
0
static int sdp_encode (session_desc_t *sptr, sdp_encode_t *se)
{
  int temp, temp1;
  media_desc_t *mptr;
  char buffer[80];

  if (sptr->create_addr_type == NULL ||
      sptr->create_addr == NULL) {
    return (ESDP_ORIGIN);
  }
  ADD_STR_TO_ENCODE_WITH_RETURN(se, "v=0\no=");
  ADD_STR_TO_ENCODE_WITH_RETURN(se,
				sptr->orig_username == NULL ?
				"-" : sptr->orig_username);
  sprintf(buffer, " "D64" "D64" IN ",
	  sptr->session_id,
	  sptr->session_version);
  ADD_STR_TO_ENCODE_WITH_RETURN(se, buffer);
  ADD_STR_TO_ENCODE_WITH_RETURN(se, sptr->create_addr_type);
  ADD_STR_TO_ENCODE_WITH_RETURN(se, " ");
  ADD_STR_TO_ENCODE_WITH_RETURN(se, sptr->create_addr);
  ADD_STR_TO_ENCODE_WITH_RETURN(se, "\ns=");
  ADD_STR_TO_ENCODE_WITH_RETURN(se, sptr->session_name);
  ADD_STR_TO_ENCODE_WITH_RETURN(se, "\n");

  if (sptr->session_desc != NULL) {
    ADD_STR_TO_ENCODE_WITH_RETURN(se, "i=");
    ADD_STR_TO_ENCODE_WITH_RETURN(se, sptr->session_desc);
    ADD_STR_TO_ENCODE_WITH_RETURN(se, "\n");
  }
  if (sptr->uri != NULL) {
    ADD_STR_TO_ENCODE_WITH_RETURN(se, "u=");
    ADD_STR_TO_ENCODE_WITH_RETURN(se, sptr->uri);
    ADD_STR_TO_ENCODE_WITH_RETURN(se, "\n");
  }
  CHECK_RETURN(encode_string_list(sptr->admin_email, se, "e=", &temp));
  CHECK_RETURN(encode_string_list(sptr->admin_phone, se, "p=", &temp1));
  if (temp + temp1 == 0) {
    ADD_STR_TO_ENCODE_WITH_RETURN(se, "e=NONE\n");
  }
  if (sptr->session_connect.used) {
    CHECK_RETURN(encode_connect(&sptr->session_connect, se));
  }
  CHECK_RETURN(encode_bandwidth(sptr->session_bandwidth, se));
  CHECK_RETURN(encode_time(sptr->time_desc, se));
  CHECK_RETURN(encode_time_adj(sptr->time_adj_desc, se));
  CHECK_RETURN(encode_key(&sptr->key, se));
  if (sptr->control_string) {
    ADD_STR_TO_ENCODE_WITH_RETURN(se, "a=control:");
    ADD_STR_TO_ENCODE_WITH_RETURN(se, sptr->control_string);
    ADD_STR_TO_ENCODE_WITH_RETURN(se, "\n");
  }
  CHECK_RETURN(encode_category(sptr->category_list, se));
  if (sptr->keywds) {
    ADD_STR_TO_ENCODE_WITH_RETURN(se, "u=");
    ADD_STR_TO_ENCODE_WITH_RETURN(se, sptr->uri);
    ADD_STR_TO_ENCODE_WITH_RETURN(se, "\n");
  }
  CHECK_RETURN(encode_conf_type(sptr, se));
  if (sptr->tool) {
    ADD_STR_TO_ENCODE_WITH_RETURN(se, "a=tool:");
    ADD_STR_TO_ENCODE_WITH_RETURN(se, sptr->tool);
    ADD_STR_TO_ENCODE_WITH_RETURN(se, "\n");
  }
  if (sptr->charset) {
    ADD_STR_TO_ENCODE_WITH_RETURN(se, "a=charset:");
    ADD_STR_TO_ENCODE_WITH_RETURN(se, sptr->charset);
    ADD_STR_TO_ENCODE_WITH_RETURN(se, "\n");
  }
  if (sptr->sdplang) {
    ADD_STR_TO_ENCODE_WITH_RETURN(se, "a=sdplang:");
    ADD_STR_TO_ENCODE_WITH_RETURN(se, sptr->sdplang);
    ADD_STR_TO_ENCODE_WITH_RETURN(se, "\n");
  }
  if (sptr->lang) {
    ADD_STR_TO_ENCODE_WITH_RETURN(se, "a=lang:");
    ADD_STR_TO_ENCODE_WITH_RETURN(se, sptr->lang);
    ADD_STR_TO_ENCODE_WITH_RETURN(se, "\n");
  }

  if (sptr->etag) {
    ADD_STR_TO_ENCODE_WITH_RETURN(se, "a=etag:");
    ADD_STR_TO_ENCODE_WITH_RETURN(se, sptr->etag);
    ADD_STR_TO_ENCODE_WITH_RETURN(se, "\n");
  }
  
  CHECK_RETURN(encode_range(&sptr->session_range, se));
  CHECK_RETURN(encode_a_ints(sptr->recvonly,
			      sptr->sendrecv,
			      sptr->sendonly,
			      se));
  CHECK_RETURN(encode_string_list(sptr->unparsed_a_lines, se, "", NULL));
  mptr = sptr->media;
  while (mptr != NULL) {
    CHECK_RETURN(encode_media(mptr, se));
    mptr = mptr->next;
  }
  return (0);
}