bulldir
上传用户:dayuan858
上传日期:2007-01-04
资源大小:194k
文件大小:36k
源码类别:

网络编程

开发平台:

Unix_Linux

  1. pop_apop.c:    (void)strncpy(p->user, p->pop_parm[1], sizeof(p->user));
  2. pop_apop.c:    p->user[sizeof(p->user)-1] = 0;
  3. pop_apop.c:    pop_log(p, LOG_INFO, "apop "%s"", p->user);
  4. pop_apop.c:    if (checkauthfile(p->user) != 0)
  5. pop_apop.c:        return (pop_msg(p,POP_FAILURE,"Permission denied for %s.",p->user));
  6. pop_apop.c:    if (checknonauthfile(p->user) != 0)
  7. pop_apop.c:        return (pop_msg(p,POP_FAILURE,"Permission denied for %s.",p->user));
  8. pop_apop.c:    if (((pw = getpwnam (p->user)) == NULL) || (pw->pw_passwd == NULL) ||
  9. pop_apop.c: return (pop_auth_fail(p,POP_FAILURE, pwerrmsg ,p->user));
  10. pop_apop.c:     "User %s login denied.", p->user));
  11. pop_apop.c: p->user, strerror(errno)));
  12. pop_apop.c:    key.dsize = strlen (key.dptr = p->user) + 1;
  13. pop_apop.c:    MD5Update(&mdContext, (unsigned char *)p->md5str, strlen(p->md5str));
  14. pop_apop.c:    if (strcmp(p->pop_parm[2], buffer)) {
  15. pop_apop.c:    if (p->debug)
  16. pop_apop.c: pop_log(p, LOG_NOTICE, "APOP authentication ok for "%s"", p->user);
  17. pop_apop.c:    p->last_msg = 0;
  18. pop_apop.c:            p->user, p->msg_count, p->drop_size));
  19. pop_bull.c:   sprintf(popBullName, "%s/.popbull", pwp->pw_dir);
  20. pop_bull.c:   dirp = opendir(p->bulldir);
  21. pop_bull.c:         "Unable to open bulletin directory '%s'. (%d)", p->bulldir, errno);
  22. pop_bull.c:      if (!isdigit(*dp->d_name)) continue;
  23. pop_bull.c:      bullNumber = atol(dp->d_name);
  24. pop_bull.c:      list = insert_list(p, list, dp->d_name);
  25. pop_bull.c:   name.dptr = p->user;
  26. pop_bull.c:   name.dsize = strlen(p->user) + 1;
  27. pop_bull.c:   bull_count = gdbm_fetch(p->bull_db, name);
  28. pop_bull.c:   bull_count = dbm_fetch(p->bull_db, name);
  29. pop_bull.c:       gdbm_store(p->bull_db, name, bull_count, GDBM_REPLACE);
  30. pop_bull.c:       if (flock(dbm_dirfno(p->bull_db), LOCK_EX) == -1)
  31. pop_bull.c:       dbm_store(p->bull_db, name, bull_count, DBM_REPLACE);
  32. pop_bull.c:       flock(dbm_dirfno(p->bull_db), LOCK_UN);
  33. pop_bull.c:   save_count = p->msg_count;
  34. pop_bull.c:       p->msg_count = save_count;
  35. pop_bull.c:       if (flock(dbm_dirfno(p->bull_db), LOCK_EX) == -1) {
  36. pop_bull.c:    p->msg_count = save_count;
  37. pop_bull.c:       gdbm_store(p->bull_db, name, bull_count, GDBM_REPLACE);
  38. pop_bull.c:       dbm_store(p->bull_db, name, bull_count, DBM_REPLACE);
  39. pop_bull.c:       flock(dbm_dirfno(p->bull_db), LOCK_UN);
  40. pop_bull.c:    p->msg_count = save_count;
  41. pop_bull.c:    msg_num = p->msg_count;
  42. pop_bull.c:    p->msg_count = (((p->msg_count - 1) / ALLOC_MSGS) + 1) * ALLOC_MSGS;
  43. pop_bull.c:    sprintf(bullName, "%s/%s", p->bulldir, name);
  44. pop_bull.c:    p->dirty = 1;
  45. pop_bull.c:    mp = p->mlp + msg_num - 1;
  46. pop_bull.c:    if (++msg_num > p->msg_count) {
  47. pop_bull.c: p->mlp=(MsgInfoList *) realloc(p->mlp,
  48. pop_bull.c:     (p->msg_count += ALLOC_MSGS)*sizeof(MsgInfoList));
  49. pop_bull.c: if (p->mlp == NULL) {
  50. pop_bull.c:     p->msg_count = 0;
  51. pop_bull.c:      p->user);
  52. pop_bull.c: mp = p->mlp + msg_num - 2;
  53. pop_bull.c:    mp->number = msg_num;
  54. pop_bull.c:    mp->length = 0;
  55. pop_bull.c:    mp->lines = 0;
  56. pop_bull.c:    mp->body_lines = 0;
  57. pop_bull.c:    mp->offset = ftell(p->drop);
  58. pop_bull.c:    mp->del_flag = FALSE;
  59. pop_bull.c:    mp->retr_flag = FALSE;
  60. pop_bull.c:    if (fputs(buffer, p->drop) == EOF) {
  61. pop_bull.c: return(pop_msg(p, POP_FAILURE, errmesg, name, p->temp_drop, errno));
  62. pop_bull.c:    p->drop_size += strlen(buffer);
  63. pop_bull.c:    mp->lines++;
  64. pop_bull.c:    if (fputs(buffer, p->drop) == EOF) {
  65. pop_bull.c: return(pop_msg(p, POP_FAILURE, errmesg, name, p->temp_drop, errno));
  66. pop_bull.c:    mp->length += strlen(buffer);
  67. pop_bull.c:    p->drop_size += strlen(buffer);
  68. pop_bull.c:    mp->lines++;
  69. pop_bull.c:    if(p->debug)
  70. pop_bull.c: mp->number, mp->offset);
  71. pop_bull.c:    mp->uidl_str = (char *)strdup(buffer);
  72. pop_bull.c: sprintf(buffer,"To: %s@%sn", p->user, p->myhost);
  73. pop_bull.c: mp->body_lines = 0; /* Reset to zero when in the body */
  74. pop_bull.c: mp->length += nchar;
  75. pop_bull.c: p->drop_size += nchar;
  76. pop_bull.c: mp->lines++;
  77. pop_bull.c: mp->body_lines++;
  78. pop_bull.c: if (fputs(buffer, p->drop) == EOF) {
  79. pop_bull.c:     return(pop_msg(p,POP_FAILURE,errmesg,name,p->temp_drop, errno));
  80. pop_bull.c:    fflush(p->drop);
  81. pop_bull.c:    p->msg_count = msg_num;
  82. pop_bull.c:    if(p->debug && msg_num != 1)
  83. pop_bull.c: mp->number,mp->uidl_str,mp->offset,mp->length,mp->lines);
  84. pop_dele.c:    msg_num = atoi(p->pop_parm[1]);
  85. pop_dele.c:    if ((msg_num < 1) || (msg_num > p->msg_count))
  86. pop_dele.c:    mp = &(p->mlp[msg_num-1]);
  87. pop_dele.c:    if (mp->del_flag)
  88. pop_dele.c:    mp->del_flag = TRUE;
  89. pop_dele.c:    if(p->debug)
  90. pop_dele.c:            mp->number,mp->offset,mp->length);
  91. pop_dele.c:    p->msgs_deleted++;
  92. pop_dele.c:    p->bytes_deleted += mp->length;
  93. pop_dele.c:    p->dirty = 1;
  94. pop_dele.c:    if (p->last_msg < msg_num) p->last_msg = msg_num;
  95. pop_dropcopy.c:    if (!p->user || *p->user == '')
  96. pop_dropcopy.c:    switch(strlen(p->user)) {
  97. pop_dropcopy.c:    seed = (p->user[0]);
  98. pop_dropcopy.c:    seed = (p->user[0] + p->user[1]);
  99. pop_dropcopy.c:    seed = (p->user[0] + p->user[1] + p->user[2]);
  100. pop_dropcopy.c:    seed = (p->user[0] + p->user[1] + p->user[2]+p->user[3]);
  101. pop_dropcopy.c:    seed = (p->user[0] + p->user[1] + p->user[2]+p->user[3]+p->user[4]);
  102. pop_dropcopy.c:    strncpy(p->drop_name, POP_MAILDIR, sizeof(p->drop_name));
  103. pop_dropcopy.c:    strncat(p->drop_name, dirchar, sizeof(p->drop_name) - strlen(p->drop_name));
  104. pop_dropcopy.c:    strncat(p->drop_name, p->user, sizeof(p->drop_name) - strlen(p->drop_name));
  105. pop_dropcopy.c:    if (!p->user || *p->user == '')
  106. pop_dropcopy.c:     *p->user, *(p->user+1) ? *(p->user+1) : *p->user, p->user);
  107. pop_dropcopy.c:    strncpy(p->drop_name, POP_MAILDIR, sizeof(p->drop_name));
  108. pop_dropcopy.c:    strncat(p->drop_name, pathstr, sizeof(p->drop_name) - strlen(p->drop_name));
  109. pop_dropcopy.c:    if ((pwp = getpwnam(p->user)) == NULL) {
  110. pop_dropcopy.c:    strncpy(p->drop_name, pwp->pw_dir, sizeof(p->drop_name));
  111. pop_dropcopy.c:    strncat(p->drop_name, "/.mail",sizeof(p->drop_name) - strlen(p->drop_name));
  112. pop_dropcopy.c:    strncpy(p->drop_name, POP_MAILDIR, sizeof(p->drop_name));
  113. pop_dropcopy.c:    strncat(p->drop_name, "/", sizeof(p->drop_name) - strlen(p->drop_name));
  114. pop_dropcopy.c:    strncat(p->drop_name, p->user, sizeof(p->drop_name) - strlen(p->drop_name));
  115. pop_dropcopy.c:    if(p->debug)
  116. pop_dropcopy.c: pop_log(p,POP_DEBUG, "Checking for old .%s.pop file", p->user);
  117. pop_dropcopy.c:    p->mlp = (MsgInfoList *)calloc((unsigned)ALLOC_MSGS,sizeof(MsgInfoList));
  118. pop_dropcopy.c:    if (p->mlp == NULL){
  119. pop_dropcopy.c:            "Can't build message list for '%s': Out of memory", p->user);
  120. pop_dropcopy.c:    p->msg_count = 0;
  121. pop_dropcopy.c:    p->drop_size = 0;
  122. pop_dropcopy.c:  while ((tempchar = getc(p->drop)) == 0);
  123. pop_dropcopy.c:  ungetc(tempchar, p->drop);
  124. pop_dropcopy.c:    if (fgets(buffer, MAXMSGLINELEN, p->drop) == NULL) {
  125. pop_dropcopy.c: if(p->debug)
  126. pop_dropcopy.c: p->user, errno);
  127. pop_dropcopy.c: p->mmdf_separator = (char *)strdup(buffer);
  128. pop_dropcopy.c:    rewind(p->drop);
  129. pop_dropcopy.c:    p->msg_count = ALLOC_MSGS;
  130. pop_dropcopy.c:  while ((tempchar = getc(p->drop)) == 0);
  131. pop_dropcopy.c:  ungetc(tempchar, p->drop);
  132. pop_dropcopy.c:    for (mp=p->mlp - 1; fgets(buffer, MAXMSGLINELEN, p->drop);) {
  133. pop_dropcopy.c:     (p->mmdf_separator ? !strcmp(p->mmdf_separator, buffer) :
  134. pop_dropcopy.c: if (++msg_num > p->msg_count) {
  135. pop_dropcopy.c:     p->mlp = (MsgInfoList *) realloc(p->mlp,
  136. pop_dropcopy.c: (p->msg_count += ALLOC_MSGS) * sizeof(MsgInfoList));
  137. pop_dropcopy.c:     if (p->mlp == NULL){
  138. pop_dropcopy.c: p->msg_count = 0;
  139. pop_dropcopy.c:     p->user);
  140. pop_dropcopy.c:     mp = p->mlp + msg_num - 2;
  141. pop_dropcopy.c: if(p->debug && msg_num != 1)
  142. pop_dropcopy.c:     mp->number, mp->uidl_str, mp->offset, mp->length, mp->lines);
  143. pop_dropcopy.c:      mp->number);
  144. pop_dropcopy.c:     mp->number = msg_num;
  145. pop_dropcopy.c:     mp->length = 0;
  146. pop_dropcopy.c:     mp->lines = 0;
  147. pop_dropcopy.c:     mp->body_lines = 0;
  148. pop_dropcopy.c:     mp->offset = ftell(p->drop) - nchar;
  149. pop_dropcopy.c:     mp->del_flag = FALSE;
  150. pop_dropcopy.c:     mp->retr_flag = FALSE;
  151. pop_dropcopy.c:     mp->orig_retr_state = FALSE;
  152. pop_dropcopy.c:     mp->uidl_str = "n";
  153. pop_dropcopy.c:     if(p->debug)
  154. pop_dropcopy.c: pop_log(p,POP_DEBUG, "Msg %d being added to list", mp->number);
  155. pop_dropcopy.c:     if (p->mmdf_separator)
  156. pop_dropcopy.c: mp->body_lines = 1;  /* Count newline as the first body line */
  157. pop_dropcopy.c:     cp = mp->uidl_str = (char *)malloc((DIG_SIZE * 2) + 2);
  158. pop_dropcopy.c:     mp->length += strlen("X-UIDL: ") + strlen(mp->uidl_str) + 1;
  159. pop_dropcopy.c:     p->drop_size += strlen("X-UIDL: ") + strlen(mp->uidl_str)+1;
  160. pop_dropcopy.c:     p->dirty = 1;
  161. pop_dropcopy.c: mp->uidl_str = (char *)strdup(cp);
  162. pop_dropcopy.c: mp->length += nchar + 1;
  163. pop_dropcopy.c: p->drop_size += nchar + 1;
  164. pop_dropcopy.c:     mp->retr_flag = TRUE;
  165. pop_dropcopy.c:     mp->orig_retr_state = TRUE;
  166. pop_dropcopy.c:     mp->body_lines++;
  167. pop_dropcopy.c: mp->length += nchar + 1;
  168. pop_dropcopy.c: p->drop_size += nchar + 1;
  169. pop_dropcopy.c: mp->lines++;
  170. pop_dropcopy.c:    p->msg_count = msg_num;
  171. pop_dropcopy.c:            p->drop_name, errno);
  172. pop_dropcopy.c:  while ((tempchar = getc(p->drop)) == 0);
  173. pop_dropcopy.c:  ungetc(tempchar, p->drop);
  174. pop_dropcopy.c: if (!p->mmdf_separator)
  175. pop_dropcopy.c:     p->mmdf_separator = (char *)strdup(buffer);
  176. pop_dropcopy.c:    msg_num = p->msg_count;
  177. pop_dropcopy.c:    p->msg_count = (((p->msg_count - 1) / ALLOC_MSGS) + 1) * ALLOC_MSGS;
  178. pop_dropcopy.c:  while ((tempchar = getc(p->drop)) == 0);
  179. pop_dropcopy.c:  ungetc(tempchar, p->drop);
  180. pop_dropcopy.c:    for (mp = p->mlp + msg_num - 1; fgets(buffer,MAXMSGLINELEN,mail_drop);) {
  181. pop_dropcopy.c: if (fputs(buffer, p->drop) == EOF) {
  182. pop_dropcopy.c:     p->temp_drop, errno);
  183. pop_dropcopy.c:     (p->mmdf_separator ? !strcmp(p->mmdf_separator, buffer) :
  184. pop_dropcopy.c: if (++msg_num > p->msg_count) {
  185. pop_dropcopy.c:     p->mlp=(MsgInfoList *) realloc(p->mlp,
  186. pop_dropcopy.c: (p->msg_count+=ALLOC_MSGS)*sizeof(MsgInfoList));
  187. pop_dropcopy.c:     if (p->mlp == NULL) {
  188. pop_dropcopy.c: p->msg_count = 0;
  189. pop_dropcopy.c: p->user);
  190. pop_dropcopy.c:     mp = p->mlp + msg_num - 2;
  191. pop_dropcopy.c: if(p->debug && msg_num != 1)
  192. pop_dropcopy.c:     mp->number,mp->uidl_str,mp->offset,mp->length,mp->lines);
  193. pop_dropcopy.c:      mp->number);
  194. pop_dropcopy.c:            mp->number = msg_num;
  195. pop_dropcopy.c:            mp->length = 0;
  196. pop_dropcopy.c:            mp->lines = 0;
  197. pop_dropcopy.c:            mp->body_lines = 0;
  198. pop_dropcopy.c:            mp->offset = ftell(p->drop) - nchar;
  199. pop_dropcopy.c:            mp->del_flag = FALSE;
  200. pop_dropcopy.c:            mp->retr_flag = FALSE;
  201. pop_dropcopy.c:            mp->orig_retr_state = FALSE;
  202. pop_dropcopy.c:     mp->uidl_str = "n";
  203. pop_dropcopy.c:            if(p->debug)
  204. pop_dropcopy.c:                pop_log(p,POP_DEBUG, "Msg %d being added to list", mp->number);
  205. pop_dropcopy.c:     if (p->mmdf_separator)
  206. pop_dropcopy.c: mp->body_lines = 1;
  207. pop_dropcopy.c:     cp = mp->uidl_str = (char *)malloc((DIG_SIZE * 2) + 2);
  208. pop_dropcopy.c:     mp->length += strlen("X-UIDL: ") + strlen(mp->uidl_str) + 1;
  209. pop_dropcopy.c:     p->drop_size += strlen("X-UIDL: ") + strlen(mp->uidl_str)+1;
  210. pop_dropcopy.c:     p->dirty = 1;
  211. pop_dropcopy.c: mp->uidl_str = (char *)strdup(cp);
  212. pop_dropcopy.c: mp->length += nchar + 1;
  213. pop_dropcopy.c: p->drop_size += nchar + 1;
  214. pop_dropcopy.c:     mp->retr_flag = TRUE;
  215. pop_dropcopy.c:     mp->orig_retr_state = TRUE;
  216. pop_dropcopy.c:     mp->body_lines++;
  217. pop_dropcopy.c:        mp->length += nchar + 1;
  218. pop_dropcopy.c:        p->drop_size += nchar + 1;
  219. pop_dropcopy.c:        mp->lines++;
  220. pop_dropcopy.c:    p->msg_count = msg_num;
  221. pop_dropcopy.c:    if(p->debug && msg_num > 0) {
  222. pop_dropcopy.c:        for (i = 0, mp = p->mlp; i < p->msg_count; i++, mp++)
  223. pop_dropcopy.c:     mp->number,mp->uidl_str,mp->offset,mp->length,mp->lines);
  224. pop_dropcopy.c:    if (fflush(p->drop) == EOF)
  225. pop_dropcopy.c:     p->temp_drop, errno);
  226. pop_dropcopy.c:    (void)sprintf(p->temp_drop, POP_DROP, p->user);
  227. pop_dropcopy.c:    if(p->debug)
  228. pop_dropcopy.c:            p->temp_drop);
  229. pop_dropcopy.c:    if (p->bulldir) {
  230. pop_dropcopy.c: sprintf(bull_db, "%s/bulldb", p->bulldir);
  231. pop_dropcopy.c: if ((p->bull_db = gdbm_open (bull_db, 512, GDBM_WRCREAT, 0600, 0)) == NULL)
  232. pop_dropcopy.c:        if ((p->bull_db = dbm_open (bull_db, O_RDWR | O_CREAT, 0600)) == NULL) 
  233. pop_dropcopy.c:    pwp->pw_gid = (gid_t)BINMAIL_IS_SETGID;
  234. pop_dropcopy.c: pwp->pw_gid = mybuf.st_gid;
  235. pop_dropcopy.c:    (void) setgid((GID_T)pwp->pw_gid);
  236. pop_dropcopy.c:    (void) setgroups(1,(GID_T *)&pwp->pw_gid); /* Set the supplementary groups list */
  237. pop_dropcopy.c:    (void) setuid((UID_T)pwp->pw_uid);
  238. pop_dropcopy.c:    if(p->debug)pop_log(p,POP_DEBUG,"uid = %d, gid = %d",getuid(),getgid());
  239. pop_dropcopy.c:    if ((dfd = open(p->temp_drop, O_RDWR | O_CREAT, 0600)) == -1) {
  240. pop_dropcopy.c:            "Unable to open temporary maildrop '%s': %s (%d)",p->temp_drop,
  241. pop_dropcopy.c:    if (mybuf.st_uid != pwp->pw_uid) {
  242. pop_dropcopy.c:     p->user));
  243. pop_dropcopy.c:     p->temp_drop));
  244. pop_dropcopy.c: p->server_mode = 0;
  245. pop_dropcopy.c:    lstat(p->temp_drop, &mybuf);
  246. pop_dropcopy.c: "Your temporary drop file %s is not type 'regular file'", p->temp_drop);
  247. pop_dropcopy.c: p->temp_drop, errno);
  248. pop_dropcopy.c:     p->temp_drop, (errno < sys_nerr) ? sys_errlist[errno] : "", errno);
  249. pop_dropcopy.c:      if (stat(p->temp_drop, &byName) || fstat(dfd, &byFd) ||
  250. pop_dropcopy.c:    if ( (p->drop = fdopen(dfd,"r+")) == NULL ) {
  251. pop_dropcopy.c:            p->temp_drop, errno);
  252. pop_dropcopy.c:    if (!p->server_mode) {
  253. pop_dropcopy.c: (void)fseek(p->drop, 0L, SEEK_END);
  254. pop_dropcopy.c: offset = ftell(p->drop);
  255. pop_dropcopy.c:    if (maillock(p->user,1) != 0)
  256. pop_dropcopy.c:            return pop_msg(p,POP_FAILURE, "maillock: '%s'", p->temp_drop);
  257. pop_dropcopy.c:    if ((mfd = open(p->drop_name, O_RDWR)) > 0) {
  258. pop_dropcopy.c:            return pop_msg(p,POP_FAILURE, "flock: '%s': %s (%d)", p->temp_drop,
  259. pop_dropcopy.c: if (!p->server_mode) {
  260. pop_dropcopy.c:     p->hold = p->drop;
  261. pop_dropcopy.c:     if ((p->drop = fdopen(mfd,"r+")) == NULL) {
  262. pop_dropcopy.c:     p->drop_name, errno);
  263. pop_dropcopy.c:    (void)fseek(p->drop, 0L, SEEK_END);
  264. pop_dropcopy.c:    offset = ftell(p->drop);
  265. pop_dropcopy.c:    if ((p->bulldir != NULL) && (pop_bull(p, pwp) != POP_SUCCESS)) {
  266. pop_dropcopy.c:        gdbm_close(p->bull_db);
  267. pop_dropcopy.c:        dbm_close(p->bull_db);
  268. pop_dropcopy.c:    (void)fseek(p->drop, 0L, SEEK_END);
  269. pop_dropcopy.c:    p->spool_end = ftell(p->drop);
  270. pop_dropcopy.c:    if (p->server_mode)
  271. pop_get_command.c:    if(p->debug) strncpy(buf, mp, sizeof(buf));
  272. pop_get_command.c:    if ((p->parm_count = pop_parse(p,mp)) < 0) return(NULL);
  273. pop_get_command.c:    if(p->debug){
  274. pop_get_command.c:        if(strcmp(p->pop_command,"pass") == 0)
  275. pop_get_command.c:            pop_log(p,POP_DEBUG,"Received: "%.128s xxxxxxxxx"",p->pop_command);
  276. pop_get_command.c:        if (strcmp(s->command,p->pop_command) == 0
  277. pop_get_command.c:             && s->ValidCurrentState == p->CurrentState) {
  278. pop_get_command.c:            if (p->parm_count < s->min_parms) {
  279. pop_get_command.c:                    "Too few arguments for the %.128s command.",p->pop_command);
  280. pop_get_command.c:            if (p->parm_count > s->max_parms) {
  281. pop_get_command.c:                    "Too many arguments for the %.128s command.",p->pop_command);
  282. pop_get_command.c:    pop_msg(p,POP_FAILURE,"Unknown command: "%.128s".",p->pop_command);
  283. pop_get_subcommand.c:        if (strcmp(s->subcommand,p->pop_subcommand) == 0) {
  284. pop_get_subcommand.c:            if ((p->parm_count-1) < s->min_parms) {
  285. pop_get_subcommand.c:                        p->pop_command,p->pop_subcommand);
  286. pop_get_subcommand.c:            if ((p->parm_count-1) > s->max_parms) {
  287. pop_get_subcommand.c:                        p->pop_command,p->pop_subcommand);
  288. pop_get_subcommand.c:            "Unknown command: "%.128s %.128s".",p->pop_command,p->pop_subcommand);
  289. pop_init.c:    if (p->kerberos) {
  290. pop_init.c:     pop_log(p, LOG_WARNING, "%s: (%s.%s@%s) %s", p->client, 
  291. pop_init.c: if (p->debug)
  292. pop_init.c: strncpy(p->user, kdata.pname, sizeof(p->user));
  293. pop_init.c:    p->msgs_deleted = 0;
  294. pop_init.c:    p->last_msg = 0;
  295. pop_init.c:    p->bytes_deleted = 0;
  296. pop_init.c:    p->drop_size = 0;
  297. pop_init.c:    p->mmdf_separator = NULL;
  298. pop_init.c:    p->bulldir = BULLDIR;
  299. pop_init.c:    p->dirty = 0;
  300. pop_init.c:    p->xmitting = 0;
  301. pop_init.c:    p->kerberos = 0;
  302. pop_init.c:    p->server_mode = 1;
  303. pop_init.c:    p->server_mode = 0;
  304. pop_init.c:    p->myname = argmessage[0];
  305. pop_init.c:    if ((p->myhost = (char *)malloc(MAXHOSTNAMELEN+1)) == NULL) {
  306. pop_init.c:    (void)gethostname(p->myhost,MAXHOSTNAMELEN);
  307. pop_init.c:    if (hp = gethostbyname(p->myhost)) {
  308. pop_init.c: if (! index(hp->h_name, '.')) { /* FQN not returned */
  309. pop_init.c:     u_long x = *(u_long *)hp->h_addr_list[0];
  310. pop_init.c:         (void) strncpy (p->myhost, hp->h_name, MAXHOSTNAMELEN);
  311. pop_init.c:         p->myhost[MAXHOSTNAMELEN] = '';
  312. pop_init.c:     (void) strncpy (p->myhost, hp->h_name, MAXHOSTNAMELEN);
  313. pop_init.c:     p->myhost[MAXHOSTNAMELEN] = '';
  314. pop_init.c:    (void)openlog(p->myname,0);
  315. pop_init.c:    (void)openlog(p->myname,POP_LOGOPTS,POP_FACILITY);
  316. pop_init.c:                p->debug++;
  317. pop_init.c: if (p->debug)
  318. pop_init.c: p->kerberos++;
  319. pop_init.c:                p->stats++;
  320. pop_init.c:                p->bulldir = optarg;
  321. pop_init.c:                p->debug++;
  322. pop_init.c: if (p->trace)
  323. pop_init.c:                if ((p->trace = fopen(optarg,"a+")) == NULL) {
  324. pop_init.c:    p->ipaddr = (char *)strdup(inet_ntoa(cs.sin_addr));
  325. pop_init.c:    p->ipport = ntohs(cs.sin_port);
  326. pop_init.c:        p->client = p->ipaddr;
  327. pop_init.c:        p->client = (char *)strdup(ch->h_name);
  328. pop_init.c:                    p->ipaddr, h_name);
  329. pop_init.c:            p->client = p->ipaddr;
  330. pop_init.c:            p->client = (char *)strdup(ch_again->h_name);
  331. pop_init.c:                        p->ipaddr,h_name);
  332. pop_init.c:                p->client = p->ipaddr;
  333. pop_init.c:    if ((p->input = fdopen(sp,"r")) == NULL){
  334. pop_init.c:    if ((p->output = fdopen(sp,"w")) == NULL){
  335. pop_init.c:    if (p->debug)
  336. pop_init.c: VERSION,p->client,p->ipaddr);
  337. pop_last.c:    int count = p->msg_count;
  338. pop_last.c:    for (mp = p->mlp + p->msg_count - 1; count > 0; mp--, count--) {
  339. pop_last.c: if ((mp->retr_flag == TRUE) && (mp->del_flag == FALSE))
  340. pop_list.c:    if (p->parm_count > 0) {
  341. pop_list.c:        msg_num = atoi(p->pop_parm[1]);
  342. pop_list.c:        if ((msg_num < 1) || (msg_num > p->msg_count))
  343. pop_list.c:        mp = &p->mlp[msg_num-1];
  344. pop_list.c:        if (mp->del_flag)
  345. pop_list.c:        return (pop_msg(p,POP_SUCCESS,"%u %u",msg_num,mp->length));
  346. pop_list.c:            p->msg_count-p->msgs_deleted,p->drop_size-p->bytes_deleted);
  347. pop_list.c:    for (i = p->msg_count, mp = p->mlp; i > 0; i--, mp++) {
  348. pop_list.c:        if (!mp->del_flag) 
  349. pop_list.c:            (void)fprintf(p->output,"%u %urn",mp->number,mp->length);
  350. pop_list.c:    (void)fprintf(p->output,".rn");
  351. pop_list.c:    (void)fflush(p->output);
  352. pop_log.c:    if (p->debug && p->trace) {
  353. pop_log.c: (void)fprintf(p->trace,"%s [%d] %sn",date_time, getpid(), msgbuf);
  354. pop_log.c:        (void)fprintf(p->trace,"%s n", date_time);
  355. pop_log.c:        (void)fflush(p->trace);
  356. pop_msg.c:    if (p->debug && stat == POP_SUCCESS)
  357. pop_msg.c:               (isdigit (p->client[0]) ? "%s@[%s]: %s" : "%s@%s: %s"),
  358. pop_msg.c:               (p->user ? p->user : "(null)"), p->client, message);
  359. pop_msg.c:    (void)fputs(message,p->output);
  360. pop_msg.c:    (void)fflush(p->output);
  361. pop_parse.c:        p->pop_parm[i] = mp;
  362. pop_parse.c:    pop_lower(p->pop_command);
  363. pop_parse.c:     * do it.  The "p->pop_command[0] == 'p'" is so save a call to
  364. pop_parse.c:    if(p->pop_command[0] == 'p' && strcmp(p->pop_command,"pass") == 0) {
  365. pop_parse.c:        p->pop_parm[1] = mp;
  366. pop_parse.c:                while (*mp == 0xa || *mp == 0xd) *mp-- = 0;
  367. pop_pass.c:        pop_log(p, LOG_WARNING, "%s: (%s.%s@%s) %s", p->client, kdata.pname, 
  368. pop_pass.c:    if (kuserok(&kdata, p->user)) {
  369. pop_pass.c:     p->client, kdata.pname, kdata.pinst, kdata.prealm, p->user);
  370. pop_pass.c: return(pop_msg(p,POP_FAILURE, "Not in %s's ACL.", p->user));
  371. pop_pass.c:  p->client, kdata.pname, kdata.pinst, kdata.prealm);
  372. pop_pass.c:  p->client, kdata.pname, kdata.pinst, kdata.prealm);
  373. pop_pass.c:    if ((pwadj = getpwanam(p->user)) == NULL) {
  374. pop_pass.c: "(shadow) Password supplied for "%s" is empty.",p->user));
  375. pop_pass.c: strcmp(crypt(p->pop_parm[1], pw->pw_passwd), pw->pw_passwd)) {
  376. pop_pass.c: return (pop_msg(p,POP_FAILURE,pwerrmsg, p->user));
  377. pop_pass.c:    if ((pwd = getspnam(p->user)) == NULL) {
  378. pop_pass.c:     return (pop_msg(p,POP_FAILURE, pwerrmsg, p->user));
  379. pop_pass.c:     return (pop_msg(p,POP_FAILURE,""%s": account expired.",p->user));
  380. pop_pass.c:     return (pop_msg(p,POP_FAILURE,""%s": account expired.",p->user));
  381. pop_pass.c: strcmp(crypt(p->pop_parm[1], pw->pw_passwd), pw->pw_passwd)) {
  382. pop_pass.c: return (pop_msg(p, POP_FAILURE, pwerrmsg, p->user));
  383. pop_pass.c:    if ((pwd = getspnam(p->user)) == NULL) {
  384. pop_pass.c:     return (pop_msg(p,POP_FAILURE, pwerrmsg, p->user));
  385. pop_pass.c: strcmp(crypt(p->pop_parm[1], pw->pw_passwd), pw->pw_passwd)) {
  386. pop_pass.c: return (pop_msg(p,POP_FAILURE, pwerrmsg, p->user));
  387. pop_pass.c:#define PASSWD(p) p->ufld.fd_encrypt
  388. pop_pass.c:    if ((pr = getprpwnam(p->user)) == NULL) {
  389. pop_pass.c:     return (pop_msg(p,POP_FAILURE, pwerrmsg, p->user));
  390. pop_pass.c:             (strcmp(bigcrypt(p->pop_parm[1], pw->pw_passwd), pw->pw_passwd) &&
  391. pop_pass.c:       strcmp(crypt (p->pop_parm[1], pw->pw_passwd), pw->pw_passwd))) {
  392. pop_pass.c:     return(pop_msg(p,POP_FAILURE, pwerrmsg, p->user));
  393. pop_pass.c:     return (pop_msg(p,POP_FAILURE, pwerrmsg, p->user));
  394. pop_pass.c: if (strcmp(bigcrypt(p->pop_parm[1], PASSWD(pr)), PASSWD(pr)) &&
  395. pop_pass.c:     strcmp(crypt(p->pop_parm[1], PASSWD(pr)), PASSWD(pr))) {
  396. pop_pass.c:     return (pop_msg(p,POP_FAILURE, pwerrmsg, p->user));
  397. pop_pass.c:     return (pop_msg(p,POP_FAILURE, pwerrmsg, p->user));
  398. pop_pass.c: return (pop_msg(p,POP_FAILURE, pwerrmsg, p->user));
  399. pop_pass.c:    if (strcmp(crypt16(p->pop_parm[1], pw->pw_passwd), pw->pw_passwd) &&
  400. pop_pass.c: strcmp(crypt(p->pop_parm[1], pw->pw_passwd), pw->pw_passwd)) {
  401. pop_pass.c: return (pop_msg(p,POP_FAILURE, pwerrmsg, p->user));
  402. pop_pass.c:#define   PASSWD(p)   (p->ufld.fd_encrypt)
  403. pop_pass.c:    if ((pr = getprpwnam(p->user)) == NULL) {
  404. pop_pass.c:     return (pop_msg(p,POP_FAILURE, pwerrmsg, p->user));
  405. pop_pass.c: return (pop_msg(p,POP_FAILURE, pwerrmsg, p->user));
  406. pop_pass.c:    if (strcmp(bigcrypt(p->pop_parm[1], pw->pw_passwd), pw->pw_passwd) &&
  407. pop_pass.c: strcmp(crypt(p->pop_parm[1], pw->pw_passwd), pw->pw_passwd)) {
  408. pop_pass.c: return (pop_msg(p,POP_FAILURE, pwerrmsg, p->user));
  409. pop_pass.c:    if ((pwd = getspnam(p->user)) == NULL) {
  410. pop_pass.c:     return (pop_msg(p,POP_FAILURE, pwerrmsg, p->user));
  411. pop_pass.c:     return (pop_msg(p,POP_FAILURE,""%s": account expired.",p->user));
  412. pop_pass.c:     return (pop_msg(p,POP_FAILURE,""%s": account expired.",p->user));
  413. pop_pass.c: strcmp(crypt(p->pop_parm[1], pw->pw_passwd), pw->pw_passwd)) {
  414. pop_pass.c: return (pop_msg(p,POP_FAILURE, pwerrmsg, p->user));
  415. pop_pass.c:    if ((pwd = getspnam(p->user)) == NULL) {
  416. pop_pass.c:     return (pop_msg(p,POP_FAILURE, pwerrmsg, p->user));
  417. pop_pass.c:     return (pop_msg(p,POP_FAILURE,""%s": account expired.",p->user));
  418. pop_pass.c:     return (pop_msg(p,POP_FAILURE,""%s": account expired.",p->user));
  419. pop_pass.c:     (strcmp(crypt(p->pop_parm[1], pw->pw_passwd), pw->pw_passwd)
  420. pop_pass.c:      && strcmp(pw_encrypt(p->pop_parm[1], pw->pw_passwd), pw->pw_passwd)
  421. pop_pass.c: return (pop_msg(p,POP_FAILURE, pwerrmsg, p->user));
  422. pop_pass.c: strcmp(crypt(p->pop_parm[1], pw->pw_passwd), pw->pw_passwd)) {
  423. pop_pass.c: return (pop_msg(p,POP_FAILURE, pwerrmsg, p->user));
  424. pop_pass.c:    if (checknonauthfile(p->user) != 0) {
  425. pop_pass.c: return (pop_msg(p,POP_FAILURE, pwerrmsg, p->user));
  426. pop_pass.c:    if (checkauthfile(p->user) != 0) {
  427. pop_pass.c: return (pop_msg(p,POP_FAILURE, pwerrmsg, p->user));
  428. pop_pass.c:    if ((pwp = getpwnam(p->user)) == NULL) {
  429. pop_pass.c: return (pop_msg(p,POP_FAILURE, pwerrmsg, p->user));
  430. pop_pass.c:     if (strlen(p->pop_parm[1]) > 8) (p->pop_parm[1])[8] = '';
  431. pop_pass.c:     if (! getsecretkey(net_name, secretkey, p->pop_parm[1]) ||
  432. pop_pass.c: return (pop_msg(p,POP_FAILURE, pwerrmsg, p->user));
  433. pop_pass.c: return(pop_msg(p, POP_FAILURE, ""%s": shell not found.", p->user));
  434. pop_pass.c:    if ((p->kerberos ? auth_user_kerberos(p, pw) : auth_user(p, pwp))
  435. pop_pass.c:     p->user, p->client);
  436. pop_pass.c:    p->last_msg = 0;
  437. pop_pass.c:            p->user,p->msg_count, p->msg_count == 1 ? "" : "s", p->drop_size));
  438. pop_quit.c:    if (p->mlp) free ((char *)p->mlp);
  439. pop_quit.c:    if (p->CurrentState == auth2) {
  440. pop_quit.c: p->user, p->client);
  441. pop_rpop.c:    if (p->ipport >= IPPORT_RESERVED || p->ipport < IPPORT_RESERVED/2)  {
  442. pop_rpop.c:       "RPOP command from %s (%s) on illegal port.",p->client,p->ipaddr);
  443. pop_rpop.c:            "Permission denied.",p->user));
  444. pop_rpop.c:    if (ruserok(p->client, 0, p->pop_parm[1], p->user) != 0)
  445. pop_rpop.c:            "Permission denied.",p->user));
  446. pop_rpop.c:    if (checknonauthfile(p->user) != 0)
  447. pop_rpop.c:            "Permission denied.",p->user));
  448. pop_rpop.c:    if (checkauthfile(p->user) != 0)
  449. pop_rpop.c:            "Permission denied.",p->user));
  450. pop_rpop.c:    if ((pw = getpwnam(p->user)) == NULL)  /* "Can't happen" */
  451. pop_rpop.c:            "Permission denied.",p->user));
  452. pop_rpop.c: return (pop_msg(p,POP_FAILURE, "Permission denied", p->user));
  453. pop_rpop.c:    p->last_msg = 0;
  454. pop_rpop.c:            p->user,p->msg_count,p->drop_size));
  455. pop_rset.c:    for (i = p->msg_count, mp = p->mlp; i > 0; i--, mp++) {
  456. pop_rset.c:        mp->del_flag = FALSE; 
  457. pop_rset.c:        mp->retr_flag = mp->orig_retr_state; 
  458. pop_rset.c:    p->msgs_deleted = 0;
  459. pop_rset.c:    p->bytes_deleted = 0;
  460. pop_rset.c:    p->last_msg = 0;
  461. pop_rset.c:        p->msg_count,p->drop_size));
  462. pop_send.c:    msg_num = atoi(p->pop_parm[1]);
  463. pop_send.c:    if ((msg_num < 1) || (msg_num > p->msg_count))
  464. pop_send.c:    mp = &p->mlp[msg_num-1];
  465. pop_send.c:    if (mp->del_flag)
  466. pop_send.c:    if (strcmp(p->pop_command,"top") == 0) {
  467. pop_send.c:        msg_lines = atoi(p->pop_parm[2]) + 1;
  468. pop_send.c: msg_lines = msg_lines > mp->body_lines ? mp->body_lines : msg_lines; 
  469. pop_send.c: if (mp->retr_flag != TRUE)
  470. pop_send.c:     p->dirty = 1;
  471. pop_send.c:        msg_lines = mp->body_lines;
  472. pop_send.c:        mp->retr_flag = TRUE;
  473. pop_send.c:    pop_msg(p,POP_SUCCESS,"%u octets",mp->length);
  474. pop_send.c:    (void)fseek(p->drop, mp->offset, 0);
  475. pop_send.c:    (void)fgets (buffer,MAXMSGLINELEN,p->drop);
  476. pop_send.c:    while (fgets(buffer, MAXMSGLINELEN, p->drop)) {
  477. pop_send.c:     sprintf(uidl_buf, "%s %s", "X-UIDL:", mp->uidl_str);
  478. pop_send.c:    while(fgets(buffer, MAXMSGLINELEN, p->drop)) {
  479. pop_send.c:    (void)fputs(".rn", p->output);
  480. pop_send.c:    (void)fflush(p->output);
  481. pop_send.c:    if (*buffer == POP_TERMINATE) (void)fputc(POP_TERMINATE,p->output);
  482. pop_send.c:    (void)fputs(buffer,p->output);
  483. pop_send.c:    if(p->debug)pop_log(p,POP_DEBUG,"Sending line "%.1000s"",buffer);
  484. pop_send.c:    if (bp) (void)fputs ("rn",p->output);
  485. pop_stat.c:    if (p->debug) pop_log(p,POP_DEBUG,"%d message(s) (%d octets).",p->msg_count-p->msgs_deleted,p->drop_size-p->bytes_deleted);
  486. pop_stat.c:        "%u %u",p->msg_count-p->msgs_deleted,p->drop_size-p->bytes_deleted));
  487. pop_uidl.c:    if (p->parm_count == 1) {
  488. pop_uidl.c:      len = strlen(p->pop_parm[1]);
  489. pop_uidl.c:      msg_id = atoi(p->pop_parm[1]);
  490. pop_uidl.c:      return (pop_msg (p,POP_FAILURE,"Parameter must be a number (range 1 to %d)", p->msg_count));
  491. pop_uidl.c:    if (len > 0 && (msg_id < 1 || msg_id > p->msg_count))
  492. pop_uidl.c:       "Message out of range.  %d messages in mail drop.",p->msg_count));
  493. pop_uidl.c:      mp = &p->mlp[msg_id-1];
  494. pop_uidl.c:      if (mp->del_flag) {
  495. pop_uidl.c: sprintf(buffer, "%d %s", msg_id, mp->uidl_str);
  496. pop_uidl.c: for (x = 1; x <= p->msg_count; x++)
  497. pop_uidl.c:     mp = &p->mlp[x-1];
  498. pop_uidl.c:     if (mp->del_flag) continue;
  499. pop_uidl.c:     sprintf(buffer, "%d %s", x, mp->uidl_str);
  500. pop_uidl.c:    (void)fputs(".rn",p->output);
  501. pop_uidl.c:    (void)fflush(p->output);
  502. pop_uidl.c:    fseek(p->drop, mp->offset, 0);
  503. pop_uidl.c:    while (fgets(buf, sizeof(buf), p->drop) != NULL) {
  504. pop_uidl.c:    if (p->parm_count == 1) {
  505. pop_uidl.c:      len = strlen(p->pop_parm[1]);
  506. pop_uidl.c:      msg_id = atoi(p->pop_parm[1]);
  507. pop_uidl.c:      return (pop_msg (p,POP_FAILURE,"Parameter must be a number (range 1 to %d)", p->msg_count));
  508. pop_uidl.c:    if (len > 0 && (msg_id < 1 || msg_id > p->msg_count))
  509. pop_uidl.c:       "Message out of range.  %d messages in mail drop.",p->msg_count));
  510. pop_uidl.c:      mp = &p->mlp[msg_id-1];
  511. pop_uidl.c:      if (mp->del_flag) {
  512. pop_uidl.c: sprintf(buffer, "%d %s", msg_id, mp->uidl_str);
  513. pop_uidl.c: sprintf(buffer, "%s %d %.128s", buffer, mp->length, from_hdr(p, mp));
  514. pop_uidl.c: for (x = 1; x <= p->msg_count; x++)
  515. pop_uidl.c:     mp = &p->mlp[x-1];
  516. pop_uidl.c:     if (mp->del_flag) continue;
  517. pop_uidl.c:     sprintf(buffer, "%d %s", x, mp->uidl_str);
  518. pop_uidl.c:     sprintf(buffer, "%s %d %.128s", buffer, mp->length, from_hdr(p, mp));
  519. pop_uidl.c:    (void)fputs(".rn",p->output);
  520. pop_uidl.c:    (void)fflush(p->output);
  521. pop_updt.c:    if (p->debug) {
  522. pop_updt.c:    if (p->stats) {
  523. pop_updt.c:           p->user, p->msgs_deleted, p->bytes_deleted,
  524. pop_updt.c:           p->msg_count - p->msgs_deleted,
  525. pop_updt.c:           p->drop_size - p->bytes_deleted);
  526. pop_updt.c:    if (p->server_mode) {
  527. pop_updt.c: if (!p->dirty) {
  528. pop_updt.c:     (void)unlink(p->temp_drop);
  529. pop_updt.c: if (maillock(p->user, 1) != 0)
  530. pop_updt.c:     return(pop_msg(p,POP_FAILURE,"maillock: '%s' (%d)",p->temp_drop,errno));
  531. pop_updt.c:    if (p->server_mode)
  532. pop_updt.c: fstat(fileno(p->drop), &mybuf);
  533. pop_updt.c:    if ((p->msgs_deleted == p->msg_count) &&
  534. pop_updt.c: (!p->server_mode || (mybuf.st_size == p->spool_end))) {
  535. pop_updt.c: (void)ftruncate (fileno(p->drop), (OFF_T)0);
  536. pop_updt.c: (void)unlink(p->temp_drop);
  537. pop_updt.c: (void)fclose(p->drop);
  538. pop_updt.c: if (p->server_mode) {
  539. pop_updt.c:     (void)fclose(p->hold);
  540. pop_updt.c:    if (!p->server_mode) {
  541. pop_updt.c: if (p->debug) 
  542. pop_updt.c:     pop_log(p,POP_DEBUG,"Opening mail drop "%s"", p->drop_name);
  543. pop_updt.c: if (maillock(p->user, 1) != 0)
  544. pop_updt.c: p->drop_name, errno));
  545. pop_updt.c: if ((mfd = open(p->drop_name,O_RDWR|O_CREAT,0660)) == -1 ||
  546. pop_updt.c: if (maillock(p->user, 1) != 0)
  547. pop_updt.c: p->drop_name, errno));
  548. pop_updt.c: mfd = fileno(p->drop);
  549. pop_updt.c:        return pop_msg(p,POP_FAILURE, "flock: '%s': %s (%d)", p->drop_name,
  550. pop_updt.c:    if (!p->server_mode) {
  551. pop_updt.c: (void)fseek(p->drop, 0, SEEK_END); 
  552. pop_updt.c: offset = ftell(p->drop); 
  553. pop_updt.c:     if ( nchar != write(fileno(p->drop), buffer, nchar) ) {
  554. pop_updt.c:     (void)ftruncate(fileno(p->drop), (OFF_T)offset);
  555. pop_updt.c:     (void)fclose(p->drop) ;
  556. pop_updt.c: rewind(p->drop);
  557. pop_updt.c: (void)lseek(fileno(p->drop), (OFF_T)0, L_SET);
  558. pop_updt.c: if (p->debug) 
  559. pop_updt.c:     p->drop_name,p->temp_drop);
  560. pop_updt.c: fstat(fileno(p->drop), &mybuf);
  561. pop_updt.c: md = p->hold; /* Really the temp drop */
  562. pop_updt.c:    if (!p->server_mode || (p->msgs_deleted != p->msg_count)) {
  563. pop_updt.c: for (msg_num = 0; msg_num < p->msg_count; ++msg_num) {
  564. pop_updt.c:     mp = &p->mlp[msg_num];
  565. pop_updt.c:     if (mp->del_flag) {
  566. pop_updt.c: if(p->debug)
  567. pop_updt.c: "Message %d flagged for deletion.",mp->number);
  568. pop_updt.c:     (void)fseek(p->drop, mp->offset, SEEK_SET);
  569. pop_updt.c:     if(p->debug)
  570. pop_updt.c: pop_log(p,POP_DEBUG,"Copying message %d.",mp->number);
  571. pop_updt.c:     fgets(buffer, MAXMSGLINELEN, p->drop);
  572. pop_updt.c:     sprintf(buffer, "%s %s", "X-UIDL:", mp->uidl_str);
  573. pop_updt.c:     fgets(buffer,MAXMSGLINELEN,p->drop);) {
  574. pop_updt.c:     if (mp->retr_flag) {
  575. pop_updt.c: if (mp->retr_flag)
  576. pop_updt.c: if (++body_lines > mp->body_lines)
  577. pop_updt.c:     if (p->mmdf_separator) {
  578. pop_updt.c: fputs(p->mmdf_separator, md);
  579. pop_updt.c:     (void)fclose(p->drop) ;
  580. pop_updt.c:     (void)fclose(p->drop);
  581. pop_updt.c:    } /* p->msgs_deleted != p->msg_count */
  582. pop_updt.c:    if (p->server_mode) {
  583. pop_updt.c: if (mybuf.st_size > p->spool_end) {
  584. pop_updt.c:     (void)lseek(fileno(p->drop), (OFF_T)p->spool_end, L_SET); 
  585. pop_updt.c:     while ((nchar = read(fileno(p->drop), buffer, BBSIZE)) > 0)
  586. pop_updt.c: rewind(p->drop);
  587. pop_updt.c: (void)ftruncate(fileno(p->drop), (OFF_T)0);
  588. pop_updt.c: (void)lseek(fileno(p->drop), (OFF_T)0, L_SET);
  589. pop_updt.c:     if (nchar != write(fileno(p->drop), buffer, nchar)) {
  590. pop_updt.c:     (void)ftruncate(fileno(p->drop), (OFF_T)0);
  591. pop_updt.c:     (void)fclose(p->drop);
  592. pop_updt.c: (void)fclose(p->drop);
  593. pop_updt.c: (void)unlink(p->temp_drop);
  594. pop_updt.c: (void)lseek(fileno(p->drop), (OFF_T)offset, L_SET);
  595. pop_updt.c: while((nchar = read(fileno(p->drop), buffer, BBSIZE)) > 0)
  596. pop_updt.c:     (void)fclose(p->drop) ;
  597. pop_updt.c: (void)ftruncate(fileno(p->drop), (OFF_T)0);
  598. pop_updt.c: (void)unlink(p->temp_drop);
  599. pop_updt.c: (void)fclose(p->drop);
  600. pop_updt.c:    if (p->debug)
  601. pop_updt.c:    if (p->server_mode)
  602. pop_updt.c:        (void) unlink(p->temp_drop);
  603. pop_updt.c:    if (p->debug)
  604. pop_updt.c:        pop_log(p,POP_DEBUG,"Opening mail drop "%s"", p->drop_name);
  605. pop_updt.c:    if (maillock(p->user, 1))
  606. pop_updt.c:        return pop_msg(p,POP_FAILURE,"maillock: '%s' (%d)",p->drop_name, errno);
  607. pop_updt.c:    if ((mfd = open(p->drop_name,O_RDWR | O_CREAT,0660)) == -1 ||
  608. pop_updt.c:        return pop_msg(p,POP_FAILURE, "flock: '%s': %s (%d)", p->drop_name,
  609. pop_updt.c:    (void)fseek(p->drop, 0, SEEK_END);
  610. pop_updt.c:    offset = ftell(p->drop);
  611. pop_updt.c:        if ( nchar != write(fileno(p->drop), buffer, nchar))
  612. pop_updt.c:            (void)ftruncate(fileno(p->drop), (OFF_T)offset);
  613. pop_updt.c:            (void)fclose(p->drop);
  614. pop_updt.c:       rewind(p->drop);
  615. pop_updt.c:       (void)lseek(fileno(p->drop), (OFF_T)0, L_SET);
  616. pop_updt.c:       while((nchar = read(fileno(p->drop), buffer, BBSIZE)) > 0)
  617. pop_updt.c:           (void)fclose(p->drop);
  618. pop_updt.c:       (void) ftruncate(fileno(p->drop), (OFF_T)0);
  619. pop_updt.c:       (void) unlink(p->temp_drop);
  620. pop_updt.c:       (void) fclose(p->drop);
  621. pop_user.c:    if (p->kerberos && strcmp(p->pop_parm[1], p->user)) {
  622. pop_user.c: p->client, kdata.pname, kdata.pinst, kdata.prealm, 
  623. pop_user.c: p->pop_parm[1]);
  624. pop_user.c:        "Wrong username supplied (%s vs. %.128s).", p->user,
  625. pop_user.c:        p->pop_parm[1]));
  626. pop_user.c:    (void)strncpy(p->user, p->pop_parm[1], sizeof(p->user));
  627. pop_user.c:    p->user[sizeof(p->user)-1] = 0;
  628. pop_user.c:    if (((pw = getpwnam(p->user)) != NULL) &&
  629. pop_user.c: key.dsize = strlen (key.dptr = p->user) + 1;
  630. pop_user.c:    return (pop_msg(p,POP_SUCCESS,"Password required for %s.",p->user));
  631. pop_xmit.c:    if(p->debug)
  632. pop_xmit.c:    if(p->debug)pop_log(p,POP_DEBUG,"Receiving mail message");
  633. pop_xmit.c:    p->xmitting = 1;
  634. pop_xmit.c:    if(p->debug)pop_log(p,POP_DEBUG,"Receiving: "%.1000s"",buffer);
  635. pop_xmit.c:            p->xmitting = 0;
  636. pop_xmit.c:    if(p->debug)pop_log(p,POP_DEBUG,"Forking for "%s"",MAIL_COMMAND);
  637. pop_xmit.c:     (void)openlog(p->myname,0);
  638. pop_xmit.c:     (void)openlog(p->myname,LOG_PID,POP_FACILITY);
  639. pop_xmit.c:     "Pop transmit from "%s" on "%s"", p->user, p->client);
  640. pop_xmit.c:            (void)fclose (p->input);
  641. pop_xmit.c:            (void)fclose (p->output);       
  642. pop_xmit.c:            if (!p->debug) (void)unlink (temp_xmit);
  643. pop_xmit.c:            if (!p->debug) (void)unlink (temp_xmit);
  644. pop_xmit.c:    if (!p->debug) (void)unlink (temp_xmit);
  645. pop_xtnd.c:    pop_lower(p->pop_subcommand);
  646. xtnd_xlst.c:    int len = strlen(p->pop_parm[2]);
  647. xtnd_xlst.c:    if (p->parm_count==3)
  648. xtnd_xlst.c:      min = max = atoi(p->pop_parm[3]);
  649. xtnd_xlst.c:      max = p->msg_count;
  650. xtnd_xlst.c:    if ((min < 1) || (min > p->msg_count))
  651. xtnd_xlst.c:      mp = &p->mlp[min-1];
  652. xtnd_xlst.c:      if (mp->del_flag) continue;
  653. xtnd_xlst.c:      (void)fseek(p->drop, (OFF_T)mp->offset, 0);
  654. xtnd_xlst.c:      (void)fgets (buffer,MAXMSGLINELEN,p->drop);
  655. xtnd_xlst.c:      while (fgets(buffer,MAXMSGLINELEN,p->drop)) {
  656. xtnd_xlst.c:          if (!strncasecmp(buffer,p->pop_parm[2],len))
  657. xtnd_xlst.c:            fprintf(p->output,"%d ",min);
  658. xtnd_xlst.c:            while (fgets(buffer,MAXMSGLINELEN,p->drop))
  659. xtnd_xlst.c:  (void)fputs(".rn",p->output);
  660. xtnd_xlst.c:  (void)fflush(p->output);