/* -*-c-*-
*
- * $Id: socket.c,v 1.10 2003/11/25 14:08:23 mdw Exp $
+ * $Id: socket.c,v 1.12 2004/04/08 01:36:25 mdw Exp $
*
* Socket source and target definitions
*
* Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
*/
-/*----- Revision history --------------------------------------------------*
- *
- * $Log: socket.c,v $
- * Revision 1.10 2003/11/25 14:08:23 mdw
- * Debianization. Socket target options. Internet binding.
- *
- * Revision 1.9 2002/02/23 00:08:00 mdw
- * Fix stupid bugs from the listen(2) change.
- *
- * Revision 1.8 2002/02/22 23:44:44 mdw
- * Call @xfree@ rather than @free@. Add option to change the listen(2)
- * parameter.
- *
- * Revision 1.7 2001/06/22 19:37:00 mdw
- * New @conn_init@ interface.
- *
- * Revision 1.6 2001/02/03 20:30:03 mdw
- * Support re-reading config files on SIGHUP.
- *
- * Revision 1.5 2000/03/23 23:20:42 mdw
- * Remove listener even if connection option isn't SOCKOPT_LIMITED.
- *
- * Revision 1.4 1999/12/22 15:44:25 mdw
- * Fix log message.
- *
- * Revision 1.3 1999/10/22 22:48:36 mdw
- * New connection options: unlimited concurrent connections, and one-shot
- * listening sockets.
- *
- * Revision 1.2 1999/07/27 18:30:53 mdw
- * Various minor portability fixes.
- *
- * Revision 1.1 1999/07/26 23:33:32 mdw
- * New sources and targets.
- *
- */
-
/*----- Header files ------------------------------------------------------*/
#include "config.h"
dstr_destroy(&d);
}
+ /* --- Confirm the address --- */
+
+ if (ss->a->ops->confirm)
+ ss->a->ops->confirm(ss->a, ADDR_SRC, ss->ao);
+
/* --- Initialize the socket for listening --- */
if ((fd = ss->a->ops->bind(ss->a, ss->ao)) < 0)
return (&st->t);
}
-/* --- @create@ --- *
- *
- * Arguments: @target *t@ = pointer to target
- * @const char *desc@ = description of connection
- *
- * Returns: Pointer to a created endpoint.
- *
- * Use: Generates a target endpoint for communication.
- */
+/* --- @confirm@ --- */
+
+static void starget_confirm(target *t)
+{
+ starget *st = (starget *)t;
+
+ if (st->a->ops->confirm)
+ st->a->ops->confirm(st->a, ADDR_DEST, st->ao);
+}
+
+/* --- @create@ --- */
static endpt *starget_create(target *t, const char *desc)
{
target_ops starget_ops = {
"socket",
- starget_option, starget_read, starget_create, starget_destroy
+ starget_option, starget_read, starget_confirm,
+ starget_create, starget_destroy
};
/*----- That's all, folks -------------------------------------------------*/