/*****************************************************************************

  POPular -- A POP3 server and proxy for large mail systems

  $Id: net.c,v 1.5 2001/05/02 12:08:07 sqrt Exp $

  http://www.remote.org/jochen/mail/popular/

******************************************************************************

  Copyright (C) 1999-2001  Jochen Topf <jochen@remote.org>

  This program is free software; you can redistribute it and/or modify
  it under the terms of the GNU General Public License as published by
  the Free Software Foundation; either version 2 of the License, or
  (at your option) any later version.

  This program is distributed in the hope that it will be useful,
  but WITHOUT ANY WARRANTY; without even the implied warranty of
  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  GNU General Public License for more details.

  You should have received a copy of the GNU General Public License
  along with this program; if not, write to the Free Software
  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA

*****************************************************************************/

#if HAVE_CONFIG_H
# include <config.h>
#endif

#include "popular.h"


/*****************************************************************************

  net_open_udp_socket()

*****************************************************************************/
int
net_open_udp_socket(const struct sockaddr_in *host, int port)
{
  struct sockaddr_in sa;
  int s;

  if ((s = socket(AF_INET, SOCK_DGRAM, 0)) < 0) {
    /* XLOG-DOC:SOS:0100:socket_call_failed
     * The creation of a UDP socket to talk to the pcheckd on a backend
     * failed. */
    xlog_printf(xlog_sos, 0x0100, "socket_call_failed errno=%d errmsg='%s'", errno, strerror(errno));
    return -1;
  }

  memcpy(&sa, host, sizeof(sa));
  sa.sin_port = htons(port);

  if (connect(s, (struct sockaddr *) &sa, sizeof(sa)) < 0) {
    /* XLOG-DOC:SOS:0101:connect_failed
     * The connect() call on the UDP socket to the pcheckd on a backend
     * failed. */
    xlog_printf(xlog_sos, 0x0101, "connect_failed backend=%s errno=%d errmsg='%s'", print_ip(host, NULL), errno, strerror(errno));
    return -1;
  }

  return s;
}


/** THE END *****************************************************************/


syntax highlighted by Code2HTML, v. 0.9.1