makeDB.c
上传用户:liguizhu
上传日期:2015-11-01
资源大小:2422k
文件大小:3k
源码类别:

P2P编程

开发平台:

Visual C++

  1. /*
  2.  *  Openmysee
  3.  *
  4.  *  This program is free software; you can redistribute it and/or modify
  5.  *  it under the terms of the GNU General Public License as published by
  6.  *  the Free Software Foundation; either version 2 of the License, or
  7.  *  (at your option) any later version.
  8.  *
  9.  *  This program is distributed in the hope that it will be useful,
  10.  *  but WITHOUT ANY WARRANTY; without even the implied warranty of
  11.  *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  12.  *  GNU General Public License for more details.
  13.  *
  14.  *  You should have received a copy of the GNU General Public License
  15.  *  along with this program; if not, write to the Free Software
  16.  *  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
  17.  *
  18.  */
  19.  
  20. #include <stdio.h>
  21. #include <stdlib.h>
  22. #include <stdarg.h>
  23. #include <ctype.h>
  24. #include <sys/types.h>
  25. #include <sys/mman.h>
  26. #include <sys/time.h>
  27. #include <sys/stat.h>
  28. #include <sys/wait.h>
  29. #include <sys/socket.h>
  30. #include <netinet/in.h>
  31. #include <arpa/inet.h>
  32. #include <netdb.h>
  33. #include <unistd.h>
  34. #include <fcntl.h>
  35. #include <errno.h>
  36. #include <assert.h>
  37. #include <syslog.h>
  38. #include <string.h>
  39. #include <time.h>
  40. #include <dirent.h>
  41. #include <db.h>
  42. #include "echo.h"
  43. extern int db_init (char *home, char *database);
  44. extern int db_add (int userid, char *pass, char *cname, float limited, int issave);
  45. extern int db_list ();
  46. extern int db_del (int userid);
  47. extern int db_end ();
  48. int
  49. main (int argc, char **argv)
  50. {
  51. int userid, i, ret;
  52. if (db_init (DB_DIR, "user.db") < 0)
  53. {
  54. fprintf (stderr, "Error in initial %s/user.dbn", DB_DIR);
  55. exit (1);
  56. }
  57. if (argc >= 7 && strcmp (argv[1], "-add") == 0)
  58. {
  59. userid = atoi (argv[2]);
  60. float bitrate = atof (argv[5]);
  61. int issave = atoi (argv[6]);
  62. char md5[MD5_LEN + 1];
  63. char cmd5[MD5_LEN + 1];
  64. char buffer[MAX_DATA];
  65. strncpy (buffer, argv[3], sizeof (buffer));
  66. md5_calc ((unsigned char *) md5, (unsigned char *) buffer,
  67.   strlen (buffer));
  68. for (i = 0; i < MD5_LEN; i += 2)
  69. sprintf (cmd5 + i, "%02x",
  70.  (unsigned char) md5[i / 2]);
  71. ret = db_add (userid, cmd5, argv[4], bitrate, issave);
  72. db_end ();
  73. exit (ret);
  74. } else if (argc >= 3 && strcmp (argv[1], "-del") == 0)
  75. {
  76. ret = userid = atoi (argv[2]);
  77. db_del (userid);
  78. db_end ();
  79. exit (ret);
  80. } else if (argc >= 2 && strcmp (argv[1], "-list") == 0)
  81. {
  82. ret = db_list ();
  83. db_end ();
  84. exit (ret);
  85. }
  86. fprintf (stderr,
  87.  "Usage:%s -add userid password channelname bitrate issavent%s -del useridnt%s -listnn", argv[0], argv[0], argv[0]);
  88. db_end ();
  89. return 0;
  90. }