/*
This file is part of GNUnet.
- (C) 2009 Christian Grothoff (and other contributing authors)
+ (C) 2009, 2010 Christian Grothoff (and other contributing authors)
GNUnet 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, or (at your
+ by the Free Software Foundation; either version 3, or (at your
option) any later version.
GNUnet is distributed in the hope that it will be useful, but
#include "platform.h"
-typedef struct GNUNET_NAT_UPNP_Handle GNUNET_NAT_UPNP_Handle;
+struct GNUNET_NAT_UPNP_Handle;
-GNUNET_NAT_UPNP_Handle *GNUNET_NAT_UPNP_init (const struct sockaddr *addr,
- socklen_t addrlen,
- unsigned short port);
+typedef void (*GNUNET_NAT_UPNP_pulse_cb) (int status,
+ struct sockaddr * ext_addr,
+ void *cls);
-void GNUNET_NAT_UPNP_close (GNUNET_NAT_UPNP_Handle *);
+struct GNUNET_NAT_UPNP_Handle *GNUNET_NAT_UPNP_init (const struct sockaddr
+ *addr, socklen_t addrlen,
+ unsigned short port,
+ GNUNET_NAT_UPNP_pulse_cb
+ pulse_cb,
+ void *pulse_cls);
-int GNUNET_NAT_UPNP_pulse (GNUNET_NAT_UPNP_Handle *, int is_enabled,
- int do_port_check, struct sockaddr **ext_addr);
-#endif /* UPNP_H */
+void GNUNET_NAT_UPNP_close (struct GNUNET_NAT_UPNP_Handle *h);
+
+void GNUNET_NAT_UPNP_pulse (struct GNUNET_NAT_UPNP_Handle *h,
+ int is_enabled, int do_port_check);
+
+#endif
+/* UPNP_H */