|
Lines 19-28
Link Here
|
| 19 |
|
19 |
|
| 20 |
#include <stdio.h> |
20 |
#include <stdio.h> |
| 21 |
#include <stdlib.h> |
21 |
#include <stdlib.h> |
|
|
22 |
#include <stddef.h> |
| 23 |
#include <errno.h> |
| 22 |
#include <string.h> |
24 |
#include <string.h> |
| 23 |
#include <unistd.h> |
25 |
#include <unistd.h> |
| 24 |
#include <sys/stat.h> |
26 |
#include <sys/stat.h> |
| 25 |
#include <unistd.h> |
|
|
| 26 |
#include <pwd.h> |
27 |
#include <pwd.h> |
| 27 |
#include <dirent.h> |
28 |
#include <dirent.h> |
| 28 |
#include <ctype.h> |
29 |
#include <ctype.h> |
|
Lines 352-392
char *get_quota_used(char *dir) {
Link Here
|
| 352 |
back to bytes for vpasswd file |
353 |
back to bytes for vpasswd file |
| 353 |
return value: 0 for success, 1 for failure |
354 |
return value: 0 for success, 1 for failure |
| 354 |
*/ |
355 |
*/ |
| 355 |
int quota_to_bytes(char returnval[], char *quota) { |
356 |
int quota_to_bytes(char returnval[], const char *quota) { |
| 356 |
double tmp; |
357 |
double tmp; |
|
|
358 |
int err = 0; |
| 357 |
|
359 |
|
| 358 |
if (quota == NULL) { return 1; } |
360 |
if (quota == NULL) { return 1; } |
| 359 |
if ((tmp = atof(quota))) { |
361 |
|
| 360 |
tmp *= 1048576; |
362 |
/* first set errno to 0 to determine if an error occurs */ |
| 361 |
sprintf(returnval, "%.0lf", tmp); |
363 |
errno = 0; |
| 362 |
return 0; |
364 |
tmp = strtod(quota, NULL); |
|
|
365 |
err = errno; |
| 366 |
if (err != 0) { |
| 367 |
perror("quota_to_bytes"); |
| 368 |
return 1; |
| 363 |
} else { |
369 |
} else { |
| 364 |
strcpy (returnval, ""); |
370 |
tmp *= (1024*1024); |
| 365 |
return 1; |
371 |
err = sprintf(returnval, "%.0lf", tmp); |
|
|
372 |
if (err > 0) { |
| 373 |
return 0; |
| 374 |
} else { |
| 375 |
returnval[0] = '\0'; |
| 376 |
return 1; |
| 377 |
} |
| 366 |
} |
378 |
} |
| 367 |
} |
379 |
} |
| 368 |
/* quota_to_megabytes: used to convert vpasswd representation of quota |
380 |
/* quota_to_megabytes: used to convert vpasswd representation of quota |
| 369 |
to number of megabytes. |
381 |
to number of megabytes. |
| 370 |
return value: 0 for success, 1 for failure |
382 |
return value: 0 for success, 1 for failure |
| 371 |
*/ |
383 |
*/ |
| 372 |
int quota_to_megabytes(char *returnval, char *quota) { |
384 |
int quota_to_megabytes(char *returnval, const char *quota) { |
| 373 |
double tmp; |
385 |
double tmp; |
| 374 |
int i; |
386 |
int err = 0; |
|
|
387 |
size_t i; |
| 375 |
|
388 |
|
| 376 |
if (quota == NULL) { return 1; } |
389 |
if (quota == NULL) { return 1; } |
| 377 |
i = strlen(quota); |
390 |
i = strlen(quota); |
|
|
391 |
|
| 392 |
errno = 0; |
| 393 |
tmp = strtod(quota, NULL); |
| 394 |
err = errno; |
| 395 |
if (err != 0) { |
| 396 |
perror("quota_to_megabytes"); |
| 397 |
return 1; |
| 398 |
} |
| 399 |
|
| 378 |
if ((quota[i-1] == 'M') || (quota[i-1] == 'm')) { |
400 |
if ((quota[i-1] == 'M') || (quota[i-1] == 'm')) { |
| 379 |
tmp = atol(quota); /* already in megabytes */ |
401 |
/* already in megabytes */ |
| 380 |
} else if ((quota[i-1] == 'K') || (quota[i-1] == 'k')) { |
402 |
} else if ((quota[i-1] == 'K') || (quota[i-1] == 'k')) { |
| 381 |
tmp = atol(quota) * 1024; /* convert kilobytes to megabytes */ |
403 |
/* convert kilobytes to megabytes */ |
| 382 |
} else if ((tmp = atol(quota))) { |
404 |
tmp *= 1024; |
| 383 |
tmp /= 1048576.0; |
405 |
} else if (tmp != 0) { |
|
|
406 |
/* convert bytes to megabytes */ |
| 407 |
tmp /= (1024*1024); |
| 384 |
} else { |
408 |
} else { |
| 385 |
strcpy (returnval, ""); |
409 |
returnval[0] = '\0'; |
| 386 |
return 1; |
410 |
return 1; |
|
|
411 |
} |
| 412 |
|
| 413 |
err = sprintf(returnval, "%.2lf", tmp); |
| 414 |
if (err > 0) { |
| 415 |
return 0; |
| 416 |
} else { |
| 417 |
returnval[0] = '\0'; |
| 418 |
return 1; |
| 387 |
} |
419 |
} |
| 388 |
sprintf(returnval, "%.2lf", tmp); |
|
|
| 389 |
return 0; |
| 390 |
} |
420 |
} |
| 391 |
|
421 |
|
| 392 |
void print_user_index (char *action, int colspan, char *user, char *dom, time_t mytime) |
422 |
void print_user_index (char *action, int colspan, char *user, char *dom, time_t mytime) |