This is pop_rpop.c in view mode; [Download] [Up]
/* * Copyright (c) 1989 Regents of the University of California. * All rights reserved. The Berkeley software License Agreement * specifies the terms and conditions for redistribution. */ /* * Copyright (c) 1997 by Qualcomm Incorporated. */ #include <config.h> #include <stdio.h> #include <sys/types.h> #include <string.h> #if HAVE_STRINGS_H #include <strings.h> #endif #include <pwd.h> #include <netinet/in.h> /* For IPPORT_RESERVED */ #include "popper.h" /* * Use /etc/hosts.equiv and the users .rhost file to validate the user. */ int pop_rpop (p) POP * p; { struct passwd * pw; if (p->ipport >= IPPORT_RESERVED || p->ipport < IPPORT_RESERVED/2) { pop_log(p,POP_PRIORITY, "RPOP command from %s (%s) on illegal port.",p->client,p->ipaddr); return (pop_msg(p,POP_FAILURE, "Permission denied.",p->user)); } if (ruserok(p->client, 0, p->pop_parm[1], p->user) != 0) return (pop_msg(p,POP_FAILURE, "Permission denied.",p->user)); #ifdef NONAUTHFILE if (checknonauthfile(p->user) != 0) return (pop_msg(p,POP_FAILURE, "Permission denied.",p->user)); #endif #ifdef AUTHFILE if (checkauthfile(p->user) != 0) return (pop_msg(p,POP_FAILURE, "Permission denied.",p->user)); #endif if ((pw = getpwnam(p->user)) == NULL) /* "Can't happen" */ return (pop_msg(p,POP_FAILURE, "Permission denied.",p->user)); if (pw->pw_uid <= BLOCK_UID) return (pop_msg(p,POP_FAILURE, "Permission denied", p->user)); /* Build the name of the user's maildrop */ if (genpath(p) < 0) return(pop_msg(p, POP_FAILURE, "Unable to create temporary drop name")); /* Make a temporary copy of the user's maildrop */ /* and set the group and user id */ if (pop_dropcopy(p, pw) != POP_SUCCESS) return (POP_FAILURE); /* Get information about the maildrop */ /* if (pop_dropinfo(p) != POP_SUCCESS) return(POP_FAILURE); */ /* Initialize the last-message-accessed number */ p->last_msg = 0; /* Authorization completed successfully */ return (pop_msg (p,POP_SUCCESS, "%s has %d message(s) (%d octets).", p->user,p->msg_count,p->drop_size)); }
These are the contents of the former NiCE NeXT User Group NeXTSTEP/OpenStep software archive, currently hosted by Netfuture.ch.