Exemple #1
0
/** Sends a password reminder to a given user.
 * @param user the user pointer
 * @return 0 on success, -1 on error
 */
int remind(lp_user *user)
{
	struct hostent host;
	struct sockaddr_in conn;
	lp_server *server = g_new0(lp_server, 1);

	lp_resolve("localhost", &host);
	server->sock = lp_create_sock();
	conn.sin_family = AF_INET;
	conn.sin_port = htons(25);
	conn.sin_addr = *((struct in_addr *) host.h_addr);
	memset(&(conn.sin_zero), 0, 8);
	if(connect(server->sock, (struct sockaddr *)&conn, sizeof(struct sockaddr))<0)
	{
		perror("connect");
		return -1;
	}
	lp_send(server, "HELO localhost");
	lp_send(server, "MAIL FROM: [email protected]");
	lp_send(server, "RCPT TO: %s", user->email);
	lp_send(server, "DATA");
	lp_send(server, "From: [email protected]");
	lp_send(server, "To: %s", user->email);
	lp_send(server, "Subject: password reminder from lpbot");
	lp_send(server, "");
	lp_send(server, "Your password is '%s'.", user->pass);
	lp_send(server, ".");
	lp_send(server, "QUIT");
	close(server->sock);
	return 0;
}
Exemple #2
0
static VALUE lp_get_resolv(VALUE self) {
  struct wrapped_object * ptr = lp_ptr(self);

  if (lp_is_unresolved_blk(ptr))
    lp_resolve(ptr);

  return ptr->obj;
}