00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00036 #ifndef _core_pproxy_h_
00037 #define _core_pproxy_h_
00038
00039 #include <glib.h>
00040
00041 #include "if/core/pproxy.h"
00042
00043
00044
00045
00046
00050 struct pproxy {
00051 struct gnutella_socket *socket;
00052 gint error_sent;
00053 time_t last_update;
00054
00055 host_addr_t addr;
00056 guint16 port;
00057 gchar *user_agent;
00058 gchar *guid;
00059 guint32 file_idx;
00060 guint32 flags;
00061 gpointer io_opaque;
00062 };
00063
00064 #define pproxy_vendor_str(p) ((p)->user_agent ? (p)->user_agent : "")
00065
00066 void pproxy_add(struct gnutella_socket *s);
00067 void pproxy_remove(struct pproxy *pp,
00068 const gchar *reason, ...) G_GNUC_PRINTF(2, 3);
00069 void pproxy_timer(time_t now);
00070 void pproxy_close(void);
00071
00072
00073
00074
00075
00076 struct cproxy *cproxy_create(struct download *d,
00077 const host_addr_t addr, guint16 port, gchar *guid, guint32 file_idx);
00078 void cproxy_free(struct cproxy *cp);
00079 void cproxy_reparent(struct download *d, struct download *cd);
00080
00081 const gchar *build_push(size_t *size_ptr, guint8 ttl, guint8 hops,
00082 const gchar *guid, host_addr_t addr, guint16 port, guint32 file_idx);
00083
00084 #endif
00085
00086