Copyright (C) Andrew Tridgell 1995-1999
This software may be distributed either under the terms of the
Copyright (C) Andrew Tridgell 1995-1999
This software may be distributed either under the terms of the
dos_date = IVAL(date_ptr,0);
if (dos_date == 0) return(0);
dos_date = IVAL(date_ptr,0);
if (dos_date == 0) return(0);
interpret_dos_date(dos_date,&t.tm_year,&t.tm_mon,
&t.tm_mday,&t.tm_hour,&t.tm_min,&t.tm_sec);
t.tm_wday = 1;
interpret_dos_date(dos_date,&t.tm_year,&t.tm_mon,
&t.tm_mday,&t.tm_hour,&t.tm_min,&t.tm_sec);
t.tm_wday = 1;
/* this gives us seconds since jan 1st 1601 (approx) */
d = (IVAL(p,4)*256.0 + CVAL(p,3)) * (1.0e-7 * (1<<24));
/* this gives us seconds since jan 1st 1601 (approx) */
d = (IVAL(p,4)*256.0 + CVAL(p,3)) * (1.0e-7 * (1<<24));
/****************************************************************************
extract a netbios name from a buf
/****************************************************************************
extract a netbios name from a buf
const uchar *p = name_ptr(buf,ofs,maxbuf);
if (p == NULL)
return(-1); /* error (probably name going past end of buffer) */
const uchar *p = name_ptr(buf,ofs,maxbuf);
if (p == NULL)
return(-1); /* error (probably name going past end of buffer) */
/****************************************************************************
return the total storage length of a mangled name
/****************************************************************************
return the total storage length of a mangled name
printf("%02X ",(int)buf[i]);
i++;
if (i%8 == 0) printf(" ");
printf("%02X ",(int)buf[i]);
i++;
if (i%8 == 0) printf(" ");
print_asc(&buf[i-16],8); printf(" ");
print_asc(&buf[i-8],8); printf("\n");
if (i<len) printf("[%03X] ",i);
print_asc(&buf[i-16],8); printf(" ");
print_asc(&buf[i-8],8); printf("\n");
if (i<len) printf("[%03X] ",i);
printf("%.*s",(int)PTR_DIFF(maxbuf,buf),unistr(buf, &len));
buf += len;
fmt++;
break;
}
case 'Z':
printf("%.*s",(int)PTR_DIFF(maxbuf,buf),unistr(buf, &len));
buf += len;
fmt++;
break;
}
case 'Z':
printf("Error! ASCIIZ buffer of type %d (safety=%d)\n",
*buf,(int)PTR_DIFF(maxbuf,buf));
printf("%.*s",(int)PTR_DIFF(maxbuf,buf+1),unistr(buf+1, &len));
printf("Error! ASCIIZ buffer of type %d (safety=%d)\n",
*buf,(int)PTR_DIFF(maxbuf,buf));
printf("%.*s",(int)PTR_DIFF(maxbuf,buf+1),unistr(buf+1, &len));
int l = atoi(fmt+1);
printf("%-*.*s",l,l,buf);
int l = atoi(fmt+1);
printf("%-*.*s",l,l,buf);
int l = atoi(fmt+1);
while (l--) printf("%02x",*buf++);
fmt++; while (isdigit(*fmt)) fmt++;
break;
}
case 'n':
int l = atoi(fmt+1);
while (l--) printf("%02x",*buf++);
fmt++; while (isdigit(*fmt)) fmt++;
break;
}
case 'n':
{0,"SUCCESS",NULL},
{0x01,"ERRDOS",dos_msgs},
{0x02,"ERRSRV",server_msgs},
{0,"SUCCESS",NULL},
{0x01,"ERRDOS",dos_msgs},
{0x02,"ERRSRV",server_msgs},
snprintf(ret,sizeof(ret),"%s - %d",err_classes[i].class,num);
return ret;
}
snprintf(ret,sizeof(ret),"%s - %d",err_classes[i].class,num);
return ret;
}
snprintf(ret,sizeof(ret),"ERROR: Unknown error (%d,%d)",class,num);
return(ret);
}
snprintf(ret,sizeof(ret),"ERROR: Unknown error (%d,%d)",class,num);
return(ret);
}