char *error;
Plug plug;
- void *privptr;
};
static Plug sk_error_plug(Socket s, Plug p)
sfree(ps);
}
-static void sk_error_set_private_ptr(Socket s, void *ptr)
-{
- Error_Socket ps = (Error_Socket) s;
- ps->privptr = ptr;
-}
-
-static void *sk_error_get_private_ptr(Socket s)
-{
- Error_Socket ps = (Error_Socket) s;
- return ps->privptr;
-}
-
static const char *sk_error_socket_error(Socket s)
{
Error_Socket ps = (Error_Socket) s;
NULL /* write_oob */,
NULL /* write_eof */,
NULL /* flush */,
- sk_error_set_private_ptr,
- sk_error_get_private_ptr,
NULL /* set_frozen */,
sk_error_socket_error
};
int (*write_oob) (Socket s, const char *data, int len);
void (*write_eof) (Socket s);
void (*flush) (Socket s);
- void (*set_private_ptr) (Socket s, void *ptr);
- void *(*get_private_ptr) (Socket s);
void (*set_frozen) (Socket s, int is_frozen);
/* ignored by tcp, but vital for ssl */
const char *(*socket_error) (Socket s);
#define plug_accepting(p, constructor, ctx) (((*p)->accepting)(p, constructor, ctx))
#endif
-/*
- * Each socket abstraction contains a `void *' private field in
- * which the client can keep state.
- *
- * This is perhaps unnecessary now that we have the notion of a plug,
- * but there is some existing code that uses it, so it stays.
- */
-#define sk_set_private_ptr(s, ptr) (((*s)->set_private_ptr) (s, ptr))
-#define sk_get_private_ptr(s) (((*s)->get_private_ptr) (s))
-
/*
* Special error values are returned from sk_namelookup and sk_new
* if there's a problem. These functions extract an error message,
sk_flush(ps->sub_socket);
}
-static void sk_proxy_set_private_ptr (Socket s, void *ptr)
-{
- Proxy_Socket ps = (Proxy_Socket) s;
- sk_set_private_ptr(ps->sub_socket, ptr);
-}
-
-static void * sk_proxy_get_private_ptr (Socket s)
-{
- Proxy_Socket ps = (Proxy_Socket) s;
- return sk_get_private_ptr(ps->sub_socket);
-}
-
static void sk_proxy_set_frozen (Socket s, int is_frozen)
{
Proxy_Socket ps = (Proxy_Socket) s;
sk_proxy_write_oob,
sk_proxy_write_eof,
sk_proxy_flush,
- sk_proxy_set_private_ptr,
- sk_proxy_get_private_ptr,
sk_proxy_set_frozen,
sk_proxy_socket_error
};
const char *error;
int s;
Plug plug;
- void *private_ptr;
bufchain output_data;
int connected; /* irrelevant for listening sockets */
int writable;
static int sk_tcp_write(Socket s, const char *data, int len);
static int sk_tcp_write_oob(Socket s, const char *data, int len);
static void sk_tcp_write_eof(Socket s);
-static void sk_tcp_set_private_ptr(Socket s, void *ptr);
-static void *sk_tcp_get_private_ptr(Socket s);
static void sk_tcp_set_frozen(Socket s, int is_frozen);
static const char *sk_tcp_socket_error(Socket s);
sk_tcp_write_oob,
sk_tcp_write_eof,
sk_tcp_flush,
- sk_tcp_set_private_ptr,
- sk_tcp_get_private_ptr,
sk_tcp_set_frozen,
sk_tcp_socket_error
};
return 1;
}
-/*
- * Each socket abstraction contains a `void *' private field in
- * which the client can keep state.
- */
-static void sk_tcp_set_private_ptr(Socket sock, void *ptr)
-{
- Actual_Socket s = (Actual_Socket) sock;
- s->private_ptr = ptr;
-}
-
-static void *sk_tcp_get_private_ptr(Socket sock)
-{
- Actual_Socket s = (Actual_Socket) sock;
- return s->private_ptr;
-}
-
/*
* Special error values are returned from sk_namelookup and sk_new
* if there's a problem. These functions extract an error message,
bufchain pending_output_data;
bufchain pending_input_data;
enum { EOF_NO, EOF_PENDING, EOF_SENT } outgoingeof;
-
- void *privptr;
};
static int localproxy_select_result(int fd, int event);
/* do nothing */
}
-static void sk_localproxy_set_private_ptr (Socket s, void *ptr)
-{
- Local_Proxy_Socket ps = (Local_Proxy_Socket) s;
- ps->privptr = ptr;
-}
-
-static void * sk_localproxy_get_private_ptr (Socket s)
-{
- Local_Proxy_Socket ps = (Local_Proxy_Socket) s;
- return ps->privptr;
-}
-
static void sk_localproxy_set_frozen (Socket s, int is_frozen)
{
Local_Proxy_Socket ps = (Local_Proxy_Socket) s;
sk_localproxy_write_oob,
sk_localproxy_write_eof,
sk_localproxy_flush,
- sk_localproxy_set_private_ptr,
- sk_localproxy_get_private_ptr,
sk_localproxy_set_frozen,
sk_localproxy_socket_error
};
char *error;
Plug plug;
-
- void *privptr;
};
static int handle_gotdata(struct handle *h, void *data, int len)
/* do nothing */
}
-static void sk_handle_set_private_ptr(Socket s, void *ptr)
-{
- Handle_Socket ps = (Handle_Socket) s;
- ps->privptr = ptr;
-}
-
-static void *sk_handle_get_private_ptr(Socket s)
-{
- Handle_Socket ps = (Handle_Socket) s;
- return ps->privptr;
-}
-
static void handle_socket_unfreeze(void *psv)
{
Handle_Socket ps = (Handle_Socket) psv;
sk_handle_write_oob,
sk_handle_write_eof,
sk_handle_flush,
- sk_handle_set_private_ptr,
- sk_handle_get_private_ptr,
sk_handle_set_frozen,
sk_handle_socket_error
};
char *error;
SOCKET s;
Plug plug;
- void *private_ptr;
bufchain output_data;
int connected;
int writable;
static int sk_tcp_write(Socket s, const char *data, int len);
static int sk_tcp_write_oob(Socket s, const char *data, int len);
static void sk_tcp_write_eof(Socket s);
-static void sk_tcp_set_private_ptr(Socket s, void *ptr);
-static void *sk_tcp_get_private_ptr(Socket s);
static void sk_tcp_set_frozen(Socket s, int is_frozen);
static const char *sk_tcp_socket_error(Socket s);
sk_tcp_write_oob,
sk_tcp_write_eof,
sk_tcp_flush,
- sk_tcp_set_private_ptr,
- sk_tcp_get_private_ptr,
sk_tcp_set_frozen,
sk_tcp_socket_error
};
sk_tcp_write_oob,
sk_tcp_write_eof,
sk_tcp_flush,
- sk_tcp_set_private_ptr,
- sk_tcp_get_private_ptr,
sk_tcp_set_frozen,
sk_tcp_socket_error
};
sk_tcp_write_oob,
sk_tcp_write_eof,
sk_tcp_flush,
- sk_tcp_set_private_ptr,
- sk_tcp_get_private_ptr,
sk_tcp_set_frozen,
sk_tcp_socket_error
};
return 1;
}
-/*
- * Each socket abstraction contains a `void *' private field in
- * which the client can keep state.
- */
-static void sk_tcp_set_private_ptr(Socket sock, void *ptr)
-{
- Actual_Socket s = (Actual_Socket) sock;
- s->private_ptr = ptr;
-}
-
-static void *sk_tcp_get_private_ptr(Socket sock)
-{
- Actual_Socket s = (Actual_Socket) sock;
- return s->private_ptr;
-}
-
/*
* Special error values are returned from sk_namelookup and sk_new
* if there's a problem. These functions extract an error message,
/* PuTTY Socket machinery */
Plug plug;
char *error;
- void *privptr;
};
static Plug sk_namedpipeserver_plug(Socket s, Plug p)
sfree(ps);
}
-static void sk_namedpipeserver_set_private_ptr(Socket s, void *ptr)
-{
- Named_Pipe_Server_Socket ps = (Named_Pipe_Server_Socket) s;
- ps->privptr = ptr;
-}
-
-static void *sk_namedpipeserver_get_private_ptr(Socket s)
-{
- Named_Pipe_Server_Socket ps = (Named_Pipe_Server_Socket) s;
- return ps->privptr;
-}
-
static const char *sk_namedpipeserver_socket_error(Socket s)
{
Named_Pipe_Server_Socket ps = (Named_Pipe_Server_Socket) s;
NULL /* write_oob */,
NULL /* write_eof */,
NULL /* flush */,
- sk_namedpipeserver_set_private_ptr,
- sk_namedpipeserver_get_private_ptr,
NULL /* set_frozen */,
sk_namedpipeserver_socket_error
};
ret->fn = &socket_fn_table;
ret->plug = plug;
ret->error = NULL;
- ret->privptr = NULL;
ret->psd = NULL;
ret->pipename = dupstr(pipename);
ret->networksid = NULL;